{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "_uuid": "2dedced004a6a41ad0aab3422271dea019ed8794"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[nltk_data] Downloading package wordnet to /usr/share/nltk_data...\n",
      "[nltk_data]   Package wordnet is already up-to-date!\n"
     ]
    }
   ],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "\n",
    "from scipy import stats\n",
    "import statsmodels.api as sm\n",
    "from scipy.stats import randint as sp_randint\n",
    "from time import time\n",
    "\n",
    "import nltk\n",
    "nltk.download('wordnet')\n",
    "import re\n",
    "from textblob import TextBlob\n",
    "from sklearn.feature_extraction import text\n",
    "from nltk.tokenize import TweetTokenizer\n",
    "from sklearn.feature_extraction.text import CountVectorizer\n",
    "from sklearn.feature_extraction.text import TfidfTransformer"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 394,
   "metadata": {},
   "outputs": [],
   "source": [
    "train = pd.read_excel('../input/sentiment/Data_Train.xlsx')\n",
    "\n",
    "test = pd.read_excel('../input/sentiment/Data_Test.xlsx')\n",
    "\n",
    "sub = pd.read_excel('../input/sentiment/Sample_submission.xlsx')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 395,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "((7628, 2), (2748, 1))"
      ]
     },
     "execution_count": 395,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train.shape, test.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "size of test data compared to train data 36.03%\n"
     ]
    }
   ],
   "source": [
    "print(\"size of test data compared to train data {:0.2f}%\".format(len(test)/len(train)*100))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "_uuid": "a1991e479eebdf5ba4b6e811e8a8d711614dfe39"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Average word length of phrases in train is 108.\n",
      "Average word length of phrases in test is 105.\n"
     ]
    }
   ],
   "source": [
    "# Returning average word length of phrases, per Dataset\n",
    "print('Average word length of phrases in train is {0:.0f}.'.format(np.mean(train['STORY'].apply(lambda x: len(x.split())))))\n",
    "print('Average word length of phrases in test is {0:.0f}.'.format(np.mean(test['STORY'].apply(lambda x: len(x.split())))))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "_uuid": "2daf6f771b7a9e30f87227f3f23c81a060c8b432"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[Text(0, 0, '1'), Text(0, 0, '2'), Text(0, 0, '0'), Text(0, 0, '3')]"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1000x500 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Set up graph\n",
    "fig, ax = plt.subplots(1, 1, dpi = 100, figsize = (10, 5))\n",
    "\n",
    "# Get data\n",
    "sentiment_labels = train['SECTION'].value_counts().index\n",
    "sentiment_count = train['SECTION'].value_counts()\n",
    "\n",
    "# Plot graph\n",
    "sns.barplot(x = sentiment_labels, y = sentiment_count)\n",
    "\n",
    "# Plot labels\n",
    "ax.set_ylabel('Count')    \n",
    "ax.set_xlabel('Sentiment Label')\n",
    "ax.set_xticklabels(sentiment_labels , rotation=30)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 397,
   "metadata": {},
   "outputs": [],
   "source": [
    "from fastai.text import *"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 398,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th>idx</th>\n",
       "      <th>text</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>0</td>\n",
       "      <td>ringgit 0.12 % , xxmaj indonesian rupiah 0.11 % , xxmaj taiwan dollar 0.06 % . xxmaj however , xxmaj japanese yen was up 0.32 % . \\n \\n \\n  xxmaj the dollar index , which measures the xxup us currency ’s strength against major currencies , was trading at xxunk , down 0.14 % from its previous close of xxunk . xxbos xxmaj if you want to answer</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>1</td>\n",
       "      <td>said xxmaj xxunk xxmaj singh , xxmaj associate xxmaj research xxmaj manager , xxmaj client xxmaj devices , xxup idc xxmaj india . \\n \\n \\n  mint - india - wire xiaomixiaomi xxunk xxunk mi band xxunk xxunk band smartwatch xxunk xxmaj reflex xxunk xxunk xxmaj xxunk note 9 xxbos xxmaj james xxmaj bond producer xxmaj xxunk xxmaj xxunk has ruled out gender swap to the character of the</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2</td>\n",
       "      <td>find the month of xxmaj february fit to launch their best of the year . xxmaj and they should , since it sets the perfect mood for the xxmaj mobile xxmaj world xxmaj congress , where manufacturers all around the world showcase their best offerings . \\n \\n \\n  xxmaj this year , xxmaj samsung and xxmaj xiaomi have chosen not to launch their smartphones at the venue --</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>3</td>\n",
       "      <td>those who are already working with xxmaj office xxmaj suite because you get free access to xxmaj office 365 . xxbos xxmaj samsung is expected to release its 5 g version of the xxmaj galaxy xxup s10 either early next month or in mid - xxmaj april \\n \\n \\n  xxmaj seoul : xxmaj premium smartphones that run on a 5 g network are expected to hit the market</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>4</td>\n",
       "      <td>four of the 21 candidates who contested in 2014 . xxmaj anti - incumbency is not a problem . \\n \\n \\n  xxmaj in 2014 , we won 20 seats . xxup bjp was number two in nine seats . xxmaj the margin was huge . xxmaj in 2019 , in most seats , it ’s xxup bjd vs xxup bjp . xxmaj congress is not in a situation</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "data = (TextList.from_df(train, cols='STORY')\n",
    "                .split_by_rand_pct(0.2)\n",
    "                .label_for_lm()  \n",
    "                .databunch(bs=48))\n",
    "data.show_batch()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 401,
   "metadata": {},
   "outputs": [],
   "source": [
    "learn = language_model_learner(data, AWD_LSTM, drop_mult=0.3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 402,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: left;\">\n",
       "      <th>epoch</th>\n",
       "      <th>train_loss</th>\n",
       "      <th>valid_loss</th>\n",
       "      <th>accuracy</th>\n",
       "      <th>time</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>0</td>\n",
       "      <td>4.133088</td>\n",
       "      <td>3.816855</td>\n",
       "      <td>0.318290</td>\n",
       "      <td>00:25</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>1</td>\n",
       "      <td>3.616301</td>\n",
       "      <td>3.517523</td>\n",
       "      <td>0.342104</td>\n",
       "      <td>00:25</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2</td>\n",
       "      <td>3.359312</td>\n",
       "      <td>3.446176</td>\n",
       "      <td>0.349545</td>\n",
       "      <td>00:25</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>3</td>\n",
       "      <td>3.208276</td>\n",
       "      <td>3.435148</td>\n",
       "      <td>0.350556</td>\n",
       "      <td>00:25</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "learn.fit_one_cycle(4)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 403,
   "metadata": {},
   "outputs": [],
   "source": [
    "learn.save('stage-1')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 404,
   "metadata": {},
   "outputs": [],
   "source": [
    "learn.unfreeze()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 405,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: left;\">\n",
       "      <th>epoch</th>\n",
       "      <th>train_loss</th>\n",
       "      <th>valid_loss</th>\n",
       "      <th>accuracy</th>\n",
       "      <th>time</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>0</td>\n",
       "      <td>3.212144</td>\n",
       "      <td>3.370986</td>\n",
       "      <td>0.360303</td>\n",
       "      <td>00:32</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "learn.fit_one_cycle(1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 406,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "LanguageLearner(data=TextLMDataBunch;\n",
       "\n",
       "Train: LabelList (6103 items)\n",
       "x: LMTextList\n",
       "xxbos xxmaj how formidable is the opposition alliance among xxmaj congress , xxmaj jharkhand xxmaj mukti xxmaj morcha ( xxup jmm ) and xxmaj jharkhand xxmaj vikas xxmaj morcha ( xxmaj prajatantrik ) ?,xxbos xxmaj most xxmaj asian currencies were trading lower today . xxmaj south xxmaj korean won was down 0.4 % , xxmaj china renminbi 0.23 % , xxmaj china xxmaj offshore 0.15 % , xxmaj malaysian ringgit 0.12 % , xxmaj indonesian rupiah 0.11 % , xxmaj taiwan dollar 0.06 % . xxmaj however , xxmaj japanese yen was up 0.32 % . \n",
       " \n",
       " \n",
       "  xxmaj the dollar index , which measures the xxup us currency ’s strength against major currencies , was trading at xxunk , down 0.14 % from its previous close of xxunk .,xxbos xxmaj if you want to answer any question , click on ‘ xxmaj answer ’ . xxmaj after clicking on xxmaj answer you can also check out replies of other users . xxmaj proceed to xxmaj answer either through writing or voice command . \n",
       " \n",
       " \n",
       "  xxmaj if you want to ask any question , click on “ xxmaj ask a xxmaj question \" . xxmaj few question xxunk are already xxunk to help you with your questions . xxmaj after xxunk your question , the app will send the questions to your neighbours and will let you know how many neighbours \n",
       " \n",
       " \n",
       "  have been asked the question . xxmaj click xxmaj done . xxmaj you can click on the bell icon on the xxunk of the app to follow answers to your questions .,xxbos xxmaj in global markets , gold prices edged up today as disappointing xxmaj chinese factory activity data brought back concerns about the health of the global economy , denting risk appetite . xxmaj spot gold rose 0.4 % to $ xxunk per ounce . xxmaj european equity markets xxunk down today , following weaker xxmaj asian stock markets .,xxbos xxup beijing : xxmaj chinese tech giant xxmaj huawei has announced plans to release a next - generation smartphone based on its own technology instead of xxup us components , stepping up efforts to compete directly with xxmaj western industry leaders . \n",
       " \n",
       " \n",
       "  xxmaj thursday 's announcement comes as xxmaj huawei xxmaj technologies xxmaj ltd. , the world 's biggest maker of network gear for phone companies , xxunk xxup us warnings the company might be a security risk .\n",
       "y: LMLabelList\n",
       ",,,,\n",
       "Path: .;\n",
       "\n",
       "Valid: LabelList (1525 items)\n",
       "x: LMTextList\n",
       "xxbos xxmaj the xxmaj internet of xxmaj things ( iot ) , especially in industries , is expected to reach the tipping point with the xxunk 5 g networks . xxmaj there is a lot of work being done using iot with artificial intelligence since meaningful xxunk have to be drawn from the xxunk of data thrown up by the thousands of sensors . \n",
       " \n",
       " \n",
       "  xxmaj further , iot can also be used with blockchain for smart contracts and keeping a trail of smart devices and their interactions . \n",
       " \n",
       " \n",
       "  xxmaj in this edition , we also have many ceos sharing their thoughts on these disruptive technologies will impact us , while xxunk on the critical need for cybersecurity and data privacy , and addressing issues like whether robotics , automation and xxup ai will impact our jobs or not .,xxbos xxmaj the model code of conduct will be in place till the entire election schedule ends and results are announced \n",
       " \n",
       " \n",
       "  xxmaj lok xxmaj sabha elections to be held in seven phases with polling in the first phase on 11 xxmaj april and the last phase on 19 xxmaj may,xxbos xxup jvc 's new line - up consists of four xxmaj full xxup hd smart tvs spanning 40 , 43 , 49 and xxunk and two 4 k xxup uhd smart tvs \n",
       " \n",
       " \n",
       "  xxup jvc entered xxmaj india in partnership with xxmaj xxunk xxmaj group to produce tvs in its xxmaj noida facility with a capacity of one million units per annum \n",
       " \n",
       " \n",
       "  xxmaj in association with xxmaj flipkart , xxmaj japanese brand xxup jvc on xxmaj tuesday launched six new smart xxup led tvs in xxmaj india starting at ₹16,999 .,xxbos xxup new xxup delhi : xxmaj the xxmaj congress on xxmaj monday night released its fifth list of 56 candidates for the xxmaj lok xxmaj sabha elections , including 22 from xxmaj andhra xxmaj pradesh and 11 from xxmaj west xxmaj bengal . \n",
       " \n",
       " \n",
       "  xxmaj the list also included eight candidates from xxmaj telangana , six from xxmaj odisha and five from xxmaj assam , besides three remaining seats from xxmaj uttar xxmaj pradesh .,xxbos xxmaj it xxunk the air in your room pretty fast and detects changes quite easily , especially when xxunk are around or there ’s cooking being done in the kitchen . \n",
       " \n",
       " \n",
       "  xxmaj for those looking for a xxunk , high - end air purifier , the xxmaj dyson xxmaj pure xxmaj cool is definitely worth considering . \n",
       " \n",
       " \n",
       "  mint - india - wire xxunk products in xxunk xxmaj air xxunk xxmaj pure xxmaj cool xxunk xxmaj purifiers in xxunk xxmaj quality xxmaj xxunk xxunk xxunk\n",
       "y: LMLabelList\n",
       ",,,,\n",
       "Path: .;\n",
       "\n",
       "Test: None, model=SequentialRNN(\n",
       "  (0): AWD_LSTM(\n",
       "    (encoder): Embedding(13736, 400, padding_idx=1)\n",
       "    (encoder_dp): EmbeddingDropout(\n",
       "      (emb): Embedding(13736, 400, padding_idx=1)\n",
       "    )\n",
       "    (rnns): ModuleList(\n",
       "      (0): WeightDropout(\n",
       "        (module): LSTM(400, 1152, batch_first=True)\n",
       "      )\n",
       "      (1): WeightDropout(\n",
       "        (module): LSTM(1152, 1152, batch_first=True)\n",
       "      )\n",
       "      (2): WeightDropout(\n",
       "        (module): LSTM(1152, 400, batch_first=True)\n",
       "      )\n",
       "    )\n",
       "    (input_dp): RNNDropout()\n",
       "    (hidden_dps): ModuleList(\n",
       "      (0): RNNDropout()\n",
       "      (1): RNNDropout()\n",
       "      (2): RNNDropout()\n",
       "    )\n",
       "  )\n",
       "  (1): LinearDecoder(\n",
       "    (decoder): Linear(in_features=400, out_features=13736, bias=True)\n",
       "    (output_dp): RNNDropout()\n",
       "  )\n",
       "), opt_func=functools.partial(<class 'torch.optim.adam.Adam'>, betas=(0.9, 0.99)), loss_func=FlattenedLoss of CrossEntropyLoss(), metrics=[<function accuracy at 0x7fa483b6fd90>], true_wd=True, bn_wd=True, wd=0.01, train_bn=True, path=PosixPath('.'), model_dir='models', callback_fns=[functools.partial(<class 'fastai.basic_train.Recorder'>, add_time=True, silent=False)], callbacks=[RNNTrainer\n",
       "learn: LanguageLearner(data=TextLMDataBunch;\n",
       "\n",
       "Train: LabelList (6103 items)\n",
       "x: LMTextList\n",
       "xxbos xxmaj how formidable is the opposition alliance among xxmaj congress , xxmaj jharkhand xxmaj mukti xxmaj morcha ( xxup jmm ) and xxmaj jharkhand xxmaj vikas xxmaj morcha ( xxmaj prajatantrik ) ?,xxbos xxmaj most xxmaj asian currencies were trading lower today . xxmaj south xxmaj korean won was down 0.4 % , xxmaj china renminbi 0.23 % , xxmaj china xxmaj offshore 0.15 % , xxmaj malaysian ringgit 0.12 % , xxmaj indonesian rupiah 0.11 % , xxmaj taiwan dollar 0.06 % . xxmaj however , xxmaj japanese yen was up 0.32 % . \n",
       " \n",
       " \n",
       "  xxmaj the dollar index , which measures the xxup us currency ’s strength against major currencies , was trading at xxunk , down 0.14 % from its previous close of xxunk .,xxbos xxmaj if you want to answer any question , click on ‘ xxmaj answer ’ . xxmaj after clicking on xxmaj answer you can also check out replies of other users . xxmaj proceed to xxmaj answer either through writing or voice command . \n",
       " \n",
       " \n",
       "  xxmaj if you want to ask any question , click on “ xxmaj ask a xxmaj question \" . xxmaj few question xxunk are already xxunk to help you with your questions . xxmaj after xxunk your question , the app will send the questions to your neighbours and will let you know how many neighbours \n",
       " \n",
       " \n",
       "  have been asked the question . xxmaj click xxmaj done . xxmaj you can click on the bell icon on the xxunk of the app to follow answers to your questions .,xxbos xxmaj in global markets , gold prices edged up today as disappointing xxmaj chinese factory activity data brought back concerns about the health of the global economy , denting risk appetite . xxmaj spot gold rose 0.4 % to $ xxunk per ounce . xxmaj european equity markets xxunk down today , following weaker xxmaj asian stock markets .,xxbos xxup beijing : xxmaj chinese tech giant xxmaj huawei has announced plans to release a next - generation smartphone based on its own technology instead of xxup us components , stepping up efforts to compete directly with xxmaj western industry leaders . \n",
       " \n",
       " \n",
       "  xxmaj thursday 's announcement comes as xxmaj huawei xxmaj technologies xxmaj ltd. , the world 's biggest maker of network gear for phone companies , xxunk xxup us warnings the company might be a security risk .\n",
       "y: LMLabelList\n",
       ",,,,\n",
       "Path: .;\n",
       "\n",
       "Valid: LabelList (1525 items)\n",
       "x: LMTextList\n",
       "xxbos xxmaj the xxmaj internet of xxmaj things ( iot ) , especially in industries , is expected to reach the tipping point with the xxunk 5 g networks . xxmaj there is a lot of work being done using iot with artificial intelligence since meaningful xxunk have to be drawn from the xxunk of data thrown up by the thousands of sensors . \n",
       " \n",
       " \n",
       "  xxmaj further , iot can also be used with blockchain for smart contracts and keeping a trail of smart devices and their interactions . \n",
       " \n",
       " \n",
       "  xxmaj in this edition , we also have many ceos sharing their thoughts on these disruptive technologies will impact us , while xxunk on the critical need for cybersecurity and data privacy , and addressing issues like whether robotics , automation and xxup ai will impact our jobs or not .,xxbos xxmaj the model code of conduct will be in place till the entire election schedule ends and results are announced \n",
       " \n",
       " \n",
       "  xxmaj lok xxmaj sabha elections to be held in seven phases with polling in the first phase on 11 xxmaj april and the last phase on 19 xxmaj may,xxbos xxup jvc 's new line - up consists of four xxmaj full xxup hd smart tvs spanning 40 , 43 , 49 and xxunk and two 4 k xxup uhd smart tvs \n",
       " \n",
       " \n",
       "  xxup jvc entered xxmaj india in partnership with xxmaj xxunk xxmaj group to produce tvs in its xxmaj noida facility with a capacity of one million units per annum \n",
       " \n",
       " \n",
       "  xxmaj in association with xxmaj flipkart , xxmaj japanese brand xxup jvc on xxmaj tuesday launched six new smart xxup led tvs in xxmaj india starting at ₹16,999 .,xxbos xxup new xxup delhi : xxmaj the xxmaj congress on xxmaj monday night released its fifth list of 56 candidates for the xxmaj lok xxmaj sabha elections , including 22 from xxmaj andhra xxmaj pradesh and 11 from xxmaj west xxmaj bengal . \n",
       " \n",
       " \n",
       "  xxmaj the list also included eight candidates from xxmaj telangana , six from xxmaj odisha and five from xxmaj assam , besides three remaining seats from xxmaj uttar xxmaj pradesh .,xxbos xxmaj it xxunk the air in your room pretty fast and detects changes quite easily , especially when xxunk are around or there ’s cooking being done in the kitchen . \n",
       " \n",
       " \n",
       "  xxmaj for those looking for a xxunk , high - end air purifier , the xxmaj dyson xxmaj pure xxmaj cool is definitely worth considering . \n",
       " \n",
       " \n",
       "  mint - india - wire xxunk products in xxunk xxmaj air xxunk xxmaj pure xxmaj cool xxunk xxmaj purifiers in xxunk xxmaj quality xxmaj xxunk xxunk xxunk\n",
       "y: LMLabelList\n",
       ",,,,\n",
       "Path: .;\n",
       "\n",
       "Test: None, model=SequentialRNN(\n",
       "  (0): AWD_LSTM(\n",
       "    (encoder): Embedding(13736, 400, padding_idx=1)\n",
       "    (encoder_dp): EmbeddingDropout(\n",
       "      (emb): Embedding(13736, 400, padding_idx=1)\n",
       "    )\n",
       "    (rnns): ModuleList(\n",
       "      (0): WeightDropout(\n",
       "        (module): LSTM(400, 1152, batch_first=True)\n",
       "      )\n",
       "      (1): WeightDropout(\n",
       "        (module): LSTM(1152, 1152, batch_first=True)\n",
       "      )\n",
       "      (2): WeightDropout(\n",
       "        (module): LSTM(1152, 400, batch_first=True)\n",
       "      )\n",
       "    )\n",
       "    (input_dp): RNNDropout()\n",
       "    (hidden_dps): ModuleList(\n",
       "      (0): RNNDropout()\n",
       "      (1): RNNDropout()\n",
       "      (2): RNNDropout()\n",
       "    )\n",
       "  )\n",
       "  (1): LinearDecoder(\n",
       "    (decoder): Linear(in_features=400, out_features=13736, bias=True)\n",
       "    (output_dp): RNNDropout()\n",
       "  )\n",
       "), opt_func=functools.partial(<class 'torch.optim.adam.Adam'>, betas=(0.9, 0.99)), loss_func=FlattenedLoss of CrossEntropyLoss(), metrics=[<function accuracy at 0x7fa483b6fd90>], true_wd=True, bn_wd=True, wd=0.01, train_bn=True, path=PosixPath('.'), model_dir='models', callback_fns=[functools.partial(<class 'fastai.basic_train.Recorder'>, add_time=True, silent=False)], callbacks=[...], layer_groups=[Sequential(\n",
       "  (0): WeightDropout(\n",
       "    (module): LSTM(400, 1152, batch_first=True)\n",
       "  )\n",
       "  (1): RNNDropout()\n",
       "), Sequential(\n",
       "  (0): WeightDropout(\n",
       "    (module): LSTM(1152, 1152, batch_first=True)\n",
       "  )\n",
       "  (1): RNNDropout()\n",
       "), Sequential(\n",
       "  (0): WeightDropout(\n",
       "    (module): LSTM(1152, 400, batch_first=True)\n",
       "  )\n",
       "  (1): RNNDropout()\n",
       "), Sequential(\n",
       "  (0): Embedding(13736, 400, padding_idx=1)\n",
       "  (1): EmbeddingDropout(\n",
       "    (emb): Embedding(13736, 400, padding_idx=1)\n",
       "  )\n",
       "  (2): LinearDecoder(\n",
       "    (decoder): Linear(in_features=400, out_features=13736, bias=True)\n",
       "    (output_dp): RNNDropout()\n",
       "  )\n",
       ")], add_time=True, silent=False)\n",
       "alpha: 2.0\n",
       "beta: 1.0], layer_groups=[Sequential(\n",
       "  (0): WeightDropout(\n",
       "    (module): LSTM(400, 1152, batch_first=True)\n",
       "  )\n",
       "  (1): RNNDropout()\n",
       "), Sequential(\n",
       "  (0): WeightDropout(\n",
       "    (module): LSTM(1152, 1152, batch_first=True)\n",
       "  )\n",
       "  (1): RNNDropout()\n",
       "), Sequential(\n",
       "  (0): WeightDropout(\n",
       "    (module): LSTM(1152, 400, batch_first=True)\n",
       "  )\n",
       "  (1): RNNDropout()\n",
       "), Sequential(\n",
       "  (0): Embedding(13736, 400, padding_idx=1)\n",
       "  (1): EmbeddingDropout(\n",
       "    (emb): Embedding(13736, 400, padding_idx=1)\n",
       "  )\n",
       "  (2): LinearDecoder(\n",
       "    (decoder): Linear(in_features=400, out_features=13736, bias=True)\n",
       "    (output_dp): RNNDropout()\n",
       "  )\n",
       ")], add_time=True, silent=False)"
      ]
     },
     "execution_count": 406,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "learn.load('stage-1')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 407,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "LR Finder is complete, type {learner_name}.recorder.plot() to see the graph.\n"
     ]
    }
   ],
   "source": [
    "learn.lr_find()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 408,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "learn.recorder.plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 409,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: left;\">\n",
       "      <th>epoch</th>\n",
       "      <th>train_loss</th>\n",
       "      <th>valid_loss</th>\n",
       "      <th>accuracy</th>\n",
       "      <th>time</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>0</td>\n",
       "      <td>3.191869</td>\n",
       "      <td>3.371664</td>\n",
       "      <td>0.357300</td>\n",
       "      <td>00:31</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>1</td>\n",
       "      <td>2.989644</td>\n",
       "      <td>3.298074</td>\n",
       "      <td>0.368133</td>\n",
       "      <td>00:32</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2</td>\n",
       "      <td>2.729437</td>\n",
       "      <td>3.298322</td>\n",
       "      <td>0.369857</td>\n",
       "      <td>00:32</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "learn.unfreeze()\n",
    "\n",
    "learn.fit_one_cycle(3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 410,
   "metadata": {},
   "outputs": [],
   "source": [
    "learn.save_encoder('fine_tuned_enc')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 411,
   "metadata": {},
   "outputs": [],
   "source": [
    "learn.load_encoder('fine_tuned_enc')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 412,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'the news for sports is that about men coming on of the world ’s top female men and men who could get into their ranks on a night off , which the Reserve Street Fighter ( JET ) even warns to check if it can better improve on men . \\n \\n \\n '"
      ]
     },
     "execution_count": 412,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "learn.predict(\"the news for sports is\", 50, temperature=1.1, min_p=.001)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 413,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th>text</th>\n",
       "      <th>target</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>xxbos xxmaj in 2014 , xxmaj gadkari xxunk the xxmaj modi wave to win by a huge margin ( even though xxmaj narendra xxmaj modi did not campaign in the constituency then , and this time round ) . 2019 looks no different given that the xxmaj congress has been xxunk in what was once its xxunk xxunk . xxmaj all six members of legislative assembly ( mlas ) in</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>xxbos xxmaj conrad xxmaj sangma , the xxup npp supremo and chief minister of xxmaj meghalaya , led the anti - xxup cab campaign . xxmaj there were expectations that the xxup cab would be placed before the xxmaj rajya xxmaj sabha before the government ’s tenure ended . xxmaj but the xxup bjp surprised all by putting the xxup cab on hold . xxmaj the anti - xxup cab</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>xxbos xxmaj mint asked top company xxunk how they see disruptive technologies such as artificial intelligence , blockchain and 5 g impacting xxmaj indian firms \\n \\n \\n  xxmaj mint asked top company xxunk how they see disruptive technologies such as artificial intelligence , blockchain and 5 g impacting xxmaj indian firms . xxmaj edited excerpts : \\n \\n \\n  xxmaj thoughts on xxup ai ( xxmaj machine</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>xxbos xxmaj every city may have its own xxunk , a distinct manner of getting views across , but xxmaj lucknow appeared to have xxunk the art of doing so in xxunk . xxmaj so to say the xxup bjp has got xxmaj uttar xxmaj pradesh will be an xxunk \\n \\n \\n  xxmaj the xxup bjp is set to do well in xxup up ’s capital . xxmaj</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>xxbos xxmaj post xxmaj pulwama , there ’s a general impression that south xxmaj kashmir is ground zero of xxmaj kashmir ’s security situation . “ xxmaj there is xxunk as it exists elsewhere , \" xxunk commentator and former editor xxmaj mohammad xxmaj sayeed xxmaj malik , “ xxmaj but spreading elections to three phases was seemingly a political decision . xxmaj maybe this decision - making suits some</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "test_datalist = TextList.from_df(test, cols='STORY', vocab=data.vocab)\n",
    "\n",
    "data_clas = (TextList.from_df(train, cols='STORY', vocab=data.vocab)\n",
    "             .split_by_rand_pct(0.2)\n",
    "             .label_from_df(cols='SECTION')\n",
    "             .add_test(test_datalist)\n",
    "             .databunch(bs=32))\n",
    "\n",
    "data_clas.show_batch()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 414,
   "metadata": {},
   "outputs": [],
   "source": [
    "learn_classifier = text_classifier_learner(data_clas, AWD_LSTM, drop_mult=0.3)\n",
    "learn_classifier.load_encoder('fine_tuned_enc')\n",
    "learn_classifier.freeze()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 415,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "LR Finder is complete, type {learner_name}.recorder.plot() to see the graph.\n"
     ]
    }
   ],
   "source": [
    "learn_classifier.lr_find()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 416,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYUAAAEKCAYAAAD9xUlFAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzt3Xl8XFX9//HXJ3vSZmmbdG/a0r2UrqFQBArIUkDZQQoKClqRHyo7+HVBQUQ2FUSFiuyIIqKyrwIVaKGle0vpvqRruiVp0pnMJOf3x0xCaJN0Se7cmcn7+XjMg5l778y8MzTzybnnnnPMOYeIiAhAit8BREQkfqgoiIhIAxUFERFpoKIgIiINVBRERKSBioKIiDRQURARkQYqCiIi0kBFQUREGqT5HeBAFRYWun79+vkdQ0QkoXzyySdbnXNF+zou4YpCv379mDVrlt8xREQSipmt2Z/jdPpIREQaqCiIiEgDFQUREWmgoiAiIg1UFEREpIGKgoiINFBREBGRBgk3TsELNeE63li8iapgmOOHdKVrXpbfkUREfNGui8LmigBPf7SWv360lq27gg3bR/Up4KRhXclKT2XV1ipWb6tiw84A/Qs7cHi/zozv35nDeuWTkdZyQ8s5x5JNlby1eDOlO3ZTEQhRGQhTVROmZ0E2Q7vlMrRHHkO65dKzIIu01ANvuG2vqmHt9mrKKoOUVQapCoYZ27cTo/sUkJpiX8iyoTzA2m3VBMO1BEJ1BMO1AGSkppCRlkJ6agr52el07pBB5w4Z5GSkYmbNvbWIJKF2WRQCoVrueu0znpi+mlrnOH5IVy6Z0Jfu+Vm8/ekW3li8mXveWApAQU46/bp0YGj3XJZuruS/S7YAkJZi5Gal0TErjQ4ZaeRnp9MjP4tu+Vn0yMtiQ3mA1xdtYs22asygW24WuVlp5GalkZORyoLScl6ev7EhU2qK0SM/iz6dchjYtSOnHdaDI/p3JiWl6S/lujrHw++v5O7XPyNU6/baX5CTzsTBRQzulsvC9eXMXruDzRXBJl6peRlpKeRkpJKVlkpWegrZGWnkZUV+1rzsdLp0zKBv5w707ZJDceccuudnkX4QhU1E4oc5t/cXSjwrKSlxrZnmYs7aHVz3j3msLKti8vhivnvsIfQr7LDXcdt2BUlNMQpyMr6wfeuuIDNXbWfB+nIqAiGqgrVUBsKU765hU0WAzeVBamrrSE81jhpQyKQR3TlxWDeKcjP3eo9dwTCfbapk2eZKSnfspnRHNaU7drN4YwXVNbX0yM/ijFE9OfWwHozomdfQkthSGeC6Z+fxv2VbOeXQblxQ0oei3EyKcjNJT01h+optvPPZFt77rIxtVTUUd85hTHEBY4s7MbBrR7LSI1/ymWmpmEGoto5Q2BEM11K+O8S2qhq2V9Wwo6qG3aFaAqFIy6K6JkzF7jAVgRDlu0Ns3RXcqyDlZqbRqUMGnTpkUNw5h0FdOzKoa0cGdO1I19xM8rLSmy10IuIdM/vEOVeyz+PaS1GoCddx/9vL+OO7y+mel8Xd54/iSwML2zxfXZ1je3UNWempdMw8uIZYdU2YNxdv5j9zN/De0jJq6xwdMlIZ27cTI3rl8+zMdVTVhPnpV4Zz0fjiZk/x1NU5KoNh8rPTW/MjNau2zrGxfDdrt1WzZns1WyqC7KiuYWd1Dduqali9rYp123d/4TkpBgU5GXTLy+LogV04fmhXDu/X+QstjNo6R4qhU1cibUhFYQ9/+3gtNz+/gPPH9eanXx1OXpY3X5RtbduuIB+s2MbMVduZuXo7n22uZEi3XH4/eQyDuuX6HW+fqmvCrCyrYkXZLrbtqmFHdaQVsmprFTNXbydU68jNTGNA145U7A6xvbqG8t0hCjtmMnFwEccP6crRgwo9K2wiiaKuzrWqla2isIfaOsdHq7Zx1IC2bx3EUlUwTHZ6alKcgtkVDPP+sq28s2QLpTur6ZQT6eAuyMlg1dYqpi0to3x3iNQU49CeeZT07UxJv06U9O2kK8Sk3Rl96xtccmRfrj15yEE9f3+LQrvpaE5NsYQvCAAdDvKUVDzqmJnGpBHdmTSie5P7w7V1zF23k/eWlvHxqu08/dEaHvlgFQCjeudz2mE9OO2wHvTpnBPL2CIxtysYZmd1KCa//569g5k9AnwF2OKcG9HCcYcDM4CvOeee8yqPJJ601BRK+nWmpF9nINIvtGhDOdNXbuO1hZu449Ul3PHqEsYWF3DjpKEceUgXnxOLeGNTeQCA7vnet5C9LDuPAQ8ATzR3gJmlAncCr3uYQ5JERloKY4o7Maa4E1ceN5B126t5ZcFGnpi+hgunzuArI3vw49OH0SM/2++oIm1qc0WkKHSLwWlTzy4qd85NA7bv47DvA/8EtniVQ5JXn845fHfiAN66diI//PIg3ly8mRPueY/73lrGzuoav+OJtJmN9S2FRC4K+2JmvYCzgQf9yiDJITsjlWtOGsxb107k2MGF/PatpRx5x9v85N8LWFm2y+94Iq1W31JI9NNH+/I74CbnXO2+rkc3synAFIDi4uIYRJNE1KdzDg99o4Qlmyp45P1VPDuzlKdmrOXk4d245qTBDOuR53dEkYOyqTxAQU46Wempnr+Xp5ekmlk/4KWmOprNbBVQXw0KgWpginPu3y29ZmtHNEv7UVYZ5MkZa3j0g1VUBsKcPrIH15w4iIFd4398h0hj3358FqU7qnnt6mMP+jXi/pJU51z/+vtm9hiR4tFiQRA5EEW5mVx70mAu/1J//vy/lTz6wSpeXbCRi4/oy02nDj3oEecisba5IhCTTmbwsE/BzJ4BpgNDzKzUzC43syvM7Aqv3lOkKfk56Vx/yhCm3Xg8l0zox1MfreGU307jvaVlfkcT2S+bKgL0iEF/AnjYUnDOTT6AY7/pVQ6Rel06ZvLzMw7lq6N6cuNz87j0kY85d2xvfnHmoWo1SNwK1daxdVcw8VsKIvFqXN9OvPyDY/h/xw/g33PXc/HDH+kSVolbWyqDOBebK49ARUHaqaz0VG44ZSh/ungsn26o4MKpMyirPLD1JkRiIZajmUFFQdq5kw/tzl++WcKabdV87aHpbNi5e99PEomhhjEKOn0kEhvHDCriycvHU1YZ5PwHp7NmW5XfkUQaxHI0M6goiABQ0q8zz0w5kuqaMBc8NJ3lWzQSWuLD5ooAGWkpFOTEZk0RFQWRqBG98vnblAnU1jkunDqdJZsq/I4kwqbyyOWosVqJUEVBpJEh3XP525QJpKYYF06dwcL15X5HknZuU3nsBq6BioLIXgZ27ciz351Ah4w0znvwQx56bwWh2jq/Y0k7takiELP+BFBREGlS3y4d+Of3juLogUXc8eoSznjgA+as3eF3LGlnnHMxHc0MKgoizeqen8XDl5bw0DfGsaOqhnP+9CG/e2up37GkHdlRHaImXKfTRyLx5JRDu/PWdRM5a3QvfvfWMl6av8HvSNJOxHrgGqgoiOyXjplp3HnuSMYWF3DTc/N1yarERCyX4aynoiCynzLSUvjDxWPJTE/lyqc/obom7HckSXKbokVBfQoicapHfjb3XTiaZVt28X/PL8DLRapENpYHMIusDRIrKgoiB+iYQUVcc+Jg/j13A499uNrvOJLENpcHKOyYSXpq7L6qNYm8yEG46viBLFhfzq0vLaZbXhanHdbD70iShGJ9OSqopSByUFJSjPsvHMPY4k5c/be5TF+xze9IkoRiPZoZVBREDlp2Rip/ubSEvl1ymPLELBZv0FxJ0rZiPZoZVBREWqUgJ4PHLxtPx6w0Ln30Y9Ztr/Y7kiSJ3TW1lO8OxXSMAqgoiLRaz4JsHr9sPIFQLd95YhZVQV2qKq23KcaL69RTURBpA4O75fLARWNZurmSa5+dS12dLlWV1vFjNDOoKIi0mYmDi/i/04bx+qLN3Pf2Mr/jSILzYzQz6JJUkTZ1+dH9WbKpkvveXsaQ7rm6VFUO2sZkaymY2SNmtsXMFjaz/0wzm29mc81slpkd7VUWkVgxM24/ewRjiwu47tl5LNqgRXrk4GyuCJCbmUbHzNj+7e7l6aPHgEkt7H8bGOWcGw1cBjzsYRaRmMlMS+XBb4wjPzudKU98wtZdQb8jSQLaVB6gW4xbCeBhUXDOTQO2t7B/l/t84pgOgHrmJGl0zc1i6iXj2LoryJVPzaYmrJXb5MCs21Ed89HM4HNHs5mdbWZLgJeJtBZEksbI3gXcdd5IPl69nVteWKjJ82S/VdeEWbKpkpG982P+3r4WBefcv5xzQ4GzgNuaO87MpkT7HWaVlZXFLqBIK505uhdXHjeAZz5exxPT1/gdRxLE/NJyauscY4s7xfy94+KS1OippgFmVtjM/qnOuRLnXElRUVGM04m0zvUnD+HEYV257aXFzFzd7BlVkQafrImsBz6mPRUFMxtoZha9PxbIADSrmCSdlBTjN18bTZ/OOVz59Gy2RK8/F2nOnLU7OKSwA507ZMT8vb28JPUZYDowxMxKzexyM7vCzK6IHnIusNDM5gJ/AL7mdNJVklReVjp/+vpYKgMhrvrrHEK16niWpjnnmL12J2P7xr6VAB4OXnPOTd7H/juBO716f5F4M7R7Hr8+ZyRX/30ud766hJ98ZbjfkSQOrd5WzfaqGl/6EyBO+hRE2ouzxvTikgl9efj9Vbw8f6PfcSQO1fcnjPOppaCiIBJjPzl9OKP7FPCj5+erf6EdW7e9mtteWkwgVPuF7bPX7iA3M41BXTv6kktFQSTGMtJS+M0FowiG6/jpfzR+ob2atqyMv7y/in/PWf+F7bPX7GB0cQEpKeZLLhUFER8cUtSRa04azOuLNvPKgk1+xxEfBEKRiw3+/L+VDVOtVwZCfLa50rf+BFBREPHNt4/uz2G98rnlhYXsqKrxO47EWDAcOW20oqyKdz7bAsC8deU4h29XHoGKgohv0lJTuOu8keysDnHrS4v9jiMxVt9S6JmfxdRpK4FIJ7MZjO5T4FsuFQURHw3rkceVxw/kX3PW89bizX7HkRgKhmrJTEvhsqP789Gq7cxbt5PZa3cwqGtH8rPTfculoiDis6uOH8iwHnlc9495rNlW5XcciZFAqJas9FQuHF9MblYaU6etZPbaHb5dilpPRUHEZxlpKTz09XEATHniE6qCYZ8TSSwEQnVkpqXQMTONi44o5uUFG6kMhH2Z76gxFQWROFDcJYcHLhrDsi2VXP+PebpMtR0IhiMtBYBvHdWftOglqGopiAgAxwwq4kenDuPVhZv4wzvL/Y4jHguE6shKj3wFd8/P4tyxvemRn8UhhR18zRXbxT9FpEXfPqY/CzeUc++bSxlb3ImjBjY5m7wkgUCjlgLAbWeNoLomTHTyaN+opSASR8yMX58zkj6dcvj5i4sIazbVpBWIXn1ULyMthYKc2E+VvScVBZE4k52Ryo9OHcrSzbv4+6x1fscRjwTDdV9oKcQLFQWRODRpRHfG9+vMb95YSmUg5Hcc8UDk6iMVBRHZD2bGT74yjG1VNfzx3RV+xxEPBEO1DR3N8ST+EokIACN7F3DOmF785f1VrNte7XccaWORPgW1FETkANwwaQgpBne+tsTvKNLGIn0K8fcVHH+JRKRBj/xsphw7gJfmb+TD5Vv9jiNtqH6ai3ijoiAS5743cQD9Cztww3Pz2aUpMJJGQC0FETkY2Rmp3HP+SDaW7+b2lz/1O460gVBtHbV1jiz1KYjIwRjXtzPfOeYQnvl4LdOWlvkdR1opGI4MSsxUS0FEDtY1Jw1mYNeO3PTP+VRo7EJCC4Qiq661qz4FM3vEzLaY2cJm9l9sZvOjtw/NbJRXWUSSQVZ6KveeP4otlUFufVErtSWyhqLQzk4fPQZMamH/KmCic24kcBsw1cMsIklhVJ8CrjxuAM99UsrjH672O44cpPqlONvV6SPn3DRgewv7P3TO7Yg+nAH09iqLSDK5+sTBnDisG794cRH/XaIlPBNRfUtBg9eadznwqt8hRBJBaopx34WjGd4zj+//dQ6LNpT7HUkOUH1Hsy5JbYKZHU+kKNzUwjFTzGyWmc0qK9OVFyIdMtP4y6WHk5edzuWPzWJTecDvSHIAgu2xo3l/mNlI4GHgTOfctuaOc85Ndc6VOOdKioqKYhdQJI51y8vikW8eTmUgxJQnZ1ET1toLiSIQVlHYi5kVA88D33DOLfUrh0giG9Yjj3svGM380nLufeMzv+PIfmroaE7z/WTNXjxbjtPMngGOAwrNrBS4BUgHcM49CPwM6AL8Mbr8XNg5V+JVHpFkNWlEdy46opiHpq3k6EGFHDNIrel4F4zjloJnRcE5N3kf+78NfNur9xdpT356+nBmrtrOtc/O47UfHkOXjpl+R5IW1LcU1NEsIp7Izkjl/sljKN8d4obn5uOc8zuStKC9Dl4TkRga1iOP/zt1KP9dsoUnpq/xO4604POWgoqCiHjo0qP6MXFwEXe+toT1O3f7HUeaUd+nEI8dzfGXSEQOmpnxy7NG4Bzc8p+FOo0UpwKhOjJSU0hJMb+j7EVFQSTJ9Omcw7UnDeatT7fw2sJNfseRJgRCtXE57xGoKIgkpW99qR+H9szjlhcWaZrtOBQMx+dSnKCiIJKU0lJTuOOcw9i6K8hdry3xO47sIRCqi8v+BFBREElaI3sX8M2j+vPUjLXMWt3shMXiA7UURMQX1508mF4F2dzw3Hx219T6HUeiAqG6uBy4BioKIkmtQ2Yad58/klVbq7jrdZ1GiheBUG1cDlyD/SwKZjbAzDKj948zsx+YWYG30USkLRw1oJBLJ/Tl0Q9WM2Nls5MRSwwlw9VH/wRqzWwg8BegP/BXz1KJSJu66dShFHfO4cbn5lMVDPsdp90LhusSu6UA1DnnwsDZwO+cc9cAPbyLJSJtKScjjXvOH8W6HdX8+lWdRvJbIJT4Hc0hM5sMXAq8FN2W7k0kEfHC+P6duexL/XlyxhpdjeSzQKgu4U8ffQuYANzunFtlZv2Bp7yLJSJeuO7kwXTPy+K2lxZTV6cpMPyS8JekOucWO+d+4Jx7xsw6AbnOuV97nE1E2lhORho3nDKEeaXlvDBvg99x2q1gog9eM7N3zSzPzDoD84BHzew33kYTES+cPaYXI3rlcedrSzR2wSeBRG8pAPnOuQrgHOBR59w44ETvYomIV1JSjJ+ePpyN5QEe/t9Kv+O0O7V1jlCtS/irj9LMrAdwAZ93NItIgjrikC5MOrQ7f3pvBVsqAn7HaVcaVl1L8I7mW4HXgRXOuZlmdgiwzLtYIuK1m08dSqi2jnve+MzvKO1KMBxZdS2h+xScc/9wzo10zn0v+nilc+5cb6OJiJf6FXbg0gn9+McnpSwoLfc7TrvxeUshgU8fmVlvM/uXmW0xs81m9k8z6+11OBHx1g9OHESXDhnc8sJCXaIaI0lRFIBHgReAnkAv4MXoNhFJYHlZ6dw4aSiz1+7kX3PW+x2nXQiEIqePEr1Pocg596hzLhy9PQYUtfQEM3sk2rJY2Mz+oWY23cyCZnb9AeYWkTZy3tjejO5TwB2vLqFSq7R5LhCOtBQyE/zqo61m9nUzS43evg7sa7rFx4BJLezfDvwAuGc/M4iIB1JSjF+ccShbdwX5/X+X+x0n6QWjLYVEn+biMiKXo24CNgLnEZn6olnOuWlEvvib27/FOTcT0J8mIj4b1aeAC0p688j7q1i+ZZffcZJafUshofsUnHNrnXNnOOeKnHNdnXNnERnIJiJJ4sZJQ8nOSOXWlxb7HSWpBes7mhP89FFTrm2zFPtgZlPMbJaZzSorK4vV24q0K4UdM/nhlwcxbWkZ/1um3zOvJEtHc1OszVLsg3NuqnOuxDlXUlTUYv+2iLTCNyb0pXenbH71yhJdouqRYH1HcyKfPmqG/sWIJJnMtFRuOGUIn26s0CWqHmloKcTpiOa0lnaaWSVNf/kbkL2P5z4DHAcUmlkpcAvRhXmccw+aWXdgFpAH1JnZ1cDw6MR7IuKTr47sycP/W8W9b3zG6SN7xG2HaKKK98FrLRYF51zuwb6wc27yPvZvAjQqWiTOpKQYPzptKBf9+SMe+3A1V0wc4HekpFLfUkjouY9EpH05akAhJwztyh/eWc6Oqhq/4ySVYLiWtBQjLTU+v37jM5WI+O7mU4dSFQxrQFsbC4Tq4vbUEagoiEgzBnfL5fxxfXhyxmrWba/2O07SiKy6Fr9fvfGbTER8d/VJg0gx4zdvLvU7StIIhGrjdt4jUFEQkRb0yM/msqP78++561m0QWsutIVguC5u5z0CFQUR2YcrJg4gLyudO1/TCm1tIRiqjdspLkBFQUT2IT87nauOH8i0pWV8sHyr33ESXqSjOX6/euM3mYjEjW9M6Euvgmx+/aqmv2itQKhWVx+JSGLLSk/l2pMGs2B9Oc/NLvU7TkKLXH2koiAiCe6sMb0Y378zt/xnEUs3V/odJ2EFQ3VxO5oZVBREZD+lphgPTB5Dh8w0rnjqE3YFw35HSkhqKYhI0uial8XvJ49h9dYqbv7nfJxT/8KBUkeziCSVCQO6cP0pQ3hp/kaemL7G7zgJR4PXRCTpXHHsAE4c1pVfvryYBaUa1HYgNHhNRJJOSopx7/mj6dIhk2uenduwRoC0rK7OUROu0+A1EUk++Tnp3H3+SJZv2cVdGu28X4Lh+vWZVRREJAkdM6iISyb05ZEPVvHhCo123pfPV12L36/e+E0mIgnh5lOH0r+wA9c/O4+KQMjvOHGtvqWgjmYRSVo5GWn85oJRbKoI8PMXFvkdJ66ppSAi7cKY4k5cdfxAnp+9nqc/0mWqzQmE64uCWgoikuR+eOJgJg4u4pb/LOKjldv8jhOXAqH6jub4/eqN32QiklBSU4z7J4+huHMO33t6NqU7tITnnoL1p4/UpyAi7UF+djp/vrSEUG0d3358FlWaH+kLAvUdze2xpWBmj5jZFjNb2Mx+M7P7zWy5mc03s7FeZRGR2BlQ1JEHLhrL0s2VXPP3uYRr6/yOFDfqO5rb69VHjwGTWth/KjAoepsC/MnDLCISQxMHF3HLVw/ljcWbue4f86jVwjxA46uP4rcopHn1ws65aWbWr4VDzgSecJFpFmeYWYGZ9XDObfQqk4jEzqVH9aOqJsxdr31GRmoKd547kpQU8zuWr4IJ0NHsWVHYD72AdY0el0a3qSiIJIkrjxtIMFTHfW8vIyMthV+eNQKz9lsYguH4P33kZ1Fo6l9Gk21MM5tC5BQTxcXFXmYSkTZ29YmDqKmt40/vrmDn7hA/Pm0YPQuy/Y7lC12S2rJSoE+jx72BDU0d6Jyb6pwrcc6VFBUVxSSciLQNM+PGU4Zw/cmDeXPxZk64911+88Zn7fLKpEToU/CzKLwAXBK9CulIoFz9CSLJycy46oRB/Pe6iZw8vDv3/3c5x93zLvPW7fQ7WkwFwrWkphjpqe2wpWBmzwDTgSFmVmpml5vZFWZ2RfSQV4CVwHLgz8CVXmURkfjQu1MO908ew7+uPAoDbntpcbta0jMYqiMzLX4LAnh79dHkfex3wP/z6v1FJH6NKe7EVScM5Gf/WcT0Fds4amCh35FiIhCujetTR6ARzSLikwtK+tAtL5Pfvb3M7ygxEwjVkRXnLYX4TiciSSsrPZUrJg7g41XbmdFOJtALhNRSEBFp1uTxxRTlZnLfW+2jtRAM15GpoiAi0rSs9FS+e+whTF+5jY9Xbfc7jucCodq472iO73QikvQuPqIvhR0zuL8d9C0EQ3VxPXANVBRExGfZGalMOfYQ3l++lZmrk7u1oKuPRET2w9eP7EtRbiZ3vrokqcctBEN1cb3ADqgoiEgcyMlI4+oTBzFrzQ7e/nSL33E8EwjXxvUCO6CiICJx4oKSPvQv7MBdry9J2vUXAqFatRRERPZHemoK1588hKWbd/H87FK/43gioI5mEZH9d9ph3RnVO5/fvrm0YUbRZKLBayIiB8DMuGnSUDaUB3hqxhq/47Qp51xk8JrGKYiI7L+jBhZyzKBCHnhnORWBkN9x2kwwHFlgRyOaRUQO0E2ThrKzOsTU91b6HaXNfL4+s4qCiMgBGdErn6+O6slf3l/FloqA33HaRCBcv+pafH/txnc6EWm3rjtpMKHaOn7/3+V+R2kTDS0FXZIqInLg+hV24MLxfXjm47Ws3lrld5xWq28paPCaiMhB+sEJg0hPTeHeN5f6HaXV1u/cDUCXDpk+J2mZioKIxK2ueVlcdnQ/Xpy3gYXry/2O0ypz1u4kxeCw3vl+R2mRioKIxLXvThxAQU46v3rl04SeLG/uup0M7pZLx8w0v6O0SEVBROJaXlY61500mA9XbEvYAW11dY5563YyprjA7yj7pKIgInHv60f2ZeLgIm5/5VOWb9nld5wDtmpbFeW7Q4zuo6IgItJqZsbd540kOz2Va/4+l5ro6OBEMXftTgDGFHfyOcm+eVoUzGySmX1mZsvN7OYm9vc1s7fNbL6ZvWtmvb3MIyKJq2teFneccxgL1pcn3NKdc9ftpGNmGgOKOvodZZ88Kwpmlgr8ATgVGA5MNrPhexx2D/CEc24kcCtwh1d5RCTxTRrRg/PH9eaP7y5PqKU756zbwcje+aSmmN9R9snLlsJ4YLlzbqVzrgb4G3DmHscMB96O3n+nif0iIl9wyxmH0rtTDt998hOWba70O84+7a6pZcnGyoToZAZvi0IvYF2jx6XRbY3NA86N3j8byDWzLh5mEpEE1zEzjccvG09ainHRwx+xKs5HOy/cUE64zjG6T/z3J4C3RaGpdtKeFxlfD0w0sznARGA9EN7rhcymmNksM5tVVlbW9klFJKH0L+zA098+gto6x8V/nsG67dV+R2pWfSdzIlx5BN4WhVKgT6PHvYENjQ9wzm1wzp3jnBsD/Di6ba9hi865qc65EudcSVFRkYeRRSRRDOqWy5OXj2dXMMzFD3/E5jidTXXuup307pRNUW58T29Rz8uiMBMYZGb9zSwDuBB4ofEBZlZoZvUZfgQ84mEeEUkyh/bM54nLj6CsMsjP/rPQ7zhNmrN2R8K0EsDDouCcCwNXAa8DnwLPOucWmdmtZnZG9LDjgM/MbCnQDbjdqzwikpywaGL0AAANe0lEQVRG9yngyuMG8PqizcxYuc3vOF+wuSLAhvJAQoxPqOfpOAXn3CvOucHOuQHOuduj237mnHshev8559yg6DHfds4FvcwjIsnpO8ceQs/8LH758mLq6uJnfqQ5CdafABrRLCJJICs9lRsnDWXh+gqen7Pe7zgN5q7bSXqqcWjPPL+j7DcVBRFJCmeM6smoPgXc/foSqmv2uojRF3PX7WB4j7y4X5e5MRUFEUkKKSnGT08fxuaKIA+9t9LvOOwKhpm3rjyhTh2BioKIJJGSfp05fWQPHpq2wvexC499sIrdoVrOGZtYU7qpKIhIUrl50lDSU1O4/PGZVARCvmSoCISYOm0lJw7ryii1FERE/NOncw4Pfn0cK8uquOqvcwjXxn6a7UffX01FIMzVJw6O+Xu3loqCiCSdLw0s5LazRjBtaRm/eHFxTJfxLK8O8fD7Kzl5eDdG9Irv9ZibEt+LhYqIHKTJ44tZtbWKqdNWckhRB771pf4xed+/vL+SygRtJYBaCiKSxG6aNJSTh3fjtpcWs2jDXtOqtbmd1TU88sFqTjusO8MTaGxCY2opiEjSSk0x7j5vFMfd8w6/eHExf59yJGZts9DN6q1V/PLlT5m1Zjvd87LoWZDNrmCYqpowP/xyYrYSQC0FEUly+TnpXH/KED5etZ2XF2xs9etVBcPc9doSTv7tNGas3MZJw7rRu1M2m8oDLN1cyUXjixnSPbcNkvtDLQURSXoXHl7MUzPW8quXP+XLQ7uRnbH/I4ydc5Tu2M2cdTuZu3YnryzYyKaKAOeM7cXNk4bSNS/Lw+Sxp6IgIkkvNcX4+VeH87WpM3ho2or97gRev3M3k6fOYG10IFxmWgrj+nbiDxePYVzfzl5G9o2Kgoi0C0cc0oXTR/bgwfdWcH5JH3oVZO/zOY99sIoNO3fzizMOZVzfTgzpnkt6anKfdU/un05EpJH/O20YALe/vHifx+6uqeXvM9dxyqHdufSofozolZ/0BQFUFESkHelVkM33TxjEKws28fzs0haPfWHeeioCYS6Z0DdG6eKDioKItCvfPfYQxvfrzE//vZBVW6uaPMY5x+MfrmFIt1zG90/OvoPmqCiISLuSlprC7y4cTVpqCj94Zg414b3nRpq9dgeLN1ZwyVF922xcQ6JQURCRdqdnQTZ3nTeSBevLufv1JXvtf2L6GnIz0zhrdC8f0vlLRUFE2qVTDu3ON47sy5//t4p/z1nfsLZzWWWQVxZs5NxxvemQ2f4u0Gx/P7GISNSPTx/G7LU7uPrvc7n/v8u45Mi+bKoIEqp1fKOddTDXU1EQkXYrKz2V5688ilcWbOTxD9fw8xcjl6oeM6iQAUUdfU7nDxUFEWnXMtNSOXtMb84e05t563byrznrOW9cYi2h2ZY8LQpmNgm4D0gFHnbO/XqP/cXA40BB9JibnXOveJlJRKQ5o/oUJNzymW3Ns45mM0sF/gCcCgwHJpvZ8D0O+wnwrHNuDHAh8Eev8oiIyL55efXReGC5c26lc64G+Btw5h7HOKB+JYp8YIOHeUREZB+8LAq9gHWNHpdGtzX2c+DrZlYKvAJ8v6kXMrMpZjbLzGaVlZV5kVVERPC2KDQ1DHDP1bMnA48553oDpwFPmtlemZxzU51zJc65kqKiIg+iiogIeFsUSoE+jR73Zu/TQ5cDzwI456YDWUChh5lERKQFXhaFmcAgM+tvZhlEOpJf2OOYtcCXAcxsGJGioPNDIiI+8awoOOfCwFXA68CnRK4yWmRmt5rZGdHDrgO+Y2bzgGeAbzrn9jzFJCIiMeLpOIXomINX9tj2s0b3FwNf8jKDiIjsP0u0P8zNrBxY1sSufKC8hW177q9/3NQxhcDWg4jXVIb9Paa5fE09bup+a7O3lG1f+/XZf77Nq/wH+9nv+diLfzt+fvaN77fHz76lfHvu7+uc2/eVOs65hLoBU/d3e+Nte+6vf9zUMcCstsx2MPlbetxM5lZl35/8+uxb/uy9zH+wn30s/u34+dnHIn88f/atyd/cLRGnzn7xALa/2ML+F/fjmAO1P8/f3/wtPW7qfmuz789r6LNPvM9+z8de5Pfzs9/f929JIn/2+/MaB/QeCXf6KBbMbJZzrsTvHAcjkbOD8vspkbNDYuePp+yJ2FKIhal+B2iFRM4Oyu+nRM4OiZ0/brKrpSAiIg3UUhARkQZJXxTM7BEz22JmCw/iuePMbIGZLTez+83MGu37vpl9ZmaLzOyutk3d8B5tnt3Mfm5m681sbvR2Wtsnb8jgyWcf3X+9mTkz82RaFI8++9vMbH70c3/DzHq2ffKGDF7kv9vMlkR/hn+ZmScLD3iU/fzo72qdmXly7r41uZt5vUvNbFn0dmmj7S3+brTawV4GlSg34FhgLLDwIJ77MTCByOR+rwKnRrcfD7wFZEYfd02g7D8Hrk/Uzz66rw+RkfJrgMJEyQ7kNTrmB8CDifTZAycDadH7dwJ3JlD2YcAQ4F2gJJ5yRzP122NbZ2Bl9L+dovc7tfQzttUt6VsKzrlpwPbG28xsgJm9ZmafmNn/zGzons8zsx5Efomnu8j/iSeAs6K7vwf82jkXjL7HlgTKHjMe5v8tcCN7z7ob19mdcxWNDu2QgPnfcJHpawBmEJnkMlGyf+qc+8yLvK3N3YxTgDedc9udczuAN4FJsfjdTvqi0IypwPedc+OA62l6xbdeRGZ6rdd4PYjBwDFm9pGZvWdmh3ua9otamx3gqugpgEfMrJN3UZvUqvwWmTdrvXNuntdBm9Dqz97MbjezdcDFwM+Irbb4t1PvMiJ/pcZKW2aPpf3J3ZTm1qPx/Gf0dO6jeGRmHYGjgH80OhWX2dShTWyr/8sujUiT7kjgcOBZMzskWrk900bZ/wTcFn18G3AvkV9wz7U2v5nlAD8mchojptros8c592Pgx2b2IyITRt7SxlGb1Fb5o6/1YyAMPN2WGZvTltljqaXcZvYt4IfRbQOBV8ysBljlnDub5n8Wz3/GdlcUiLSOdjrnRjfeaJE1pT+JPnyByJdn4+Zx4/UgSoHno0XgYzOrIzJ3idfTfrc6u3Nuc6Pn/Rl4ycvAe2ht/gFAf2Be9JesNzDbzMY75zbFefY9/RV4mRgVBdoof7TD8yvAl73+I6iRtv7sY6XJ3ADOuUeBRwHM7F0iM0SvbnRIKXBco8e9ifQ9lOL1z+hFh0u83YB+NOr8AT4Ezo/eN2BUM8+bSaQ1UN+hc1p0+xXArdH7g4k08yxBsvdodMw1wN8S6bPf45jVeNTR7NFnP6jRMd8Hnkukzx6YBCwGirzM7eW/GzzsaD7Y3DTf0byKyBmJTtH7nffnZ2z1z+D1/1y/b0TWadgIhIhU2cuJ/LX5GjAv+o/8Z808twRYCKwAHuDzwX4ZwFPRfbOBExIo+5PAAmA+kb+ueniR3av8exyzGu+uPvLis/9ndPt8IvPR9Eqkzx5YTuQPoLnRmydXT3mU/ezoawWBzcDr8ZKbJopCdPtl0c98OfCtA/ndaM1NI5pFRKRBe736SEREmqCiICIiDVQURESkgYqCiIg0UFEQEZEGKgqSFMxsV4zf72EzG95Gr1VrkZlTF5rZi/uafdTMCszsyrZ4b5E96ZJUSQpmtss517ENXy/NfT75m6caZzezx4GlzrnbWzi+H/CSc25ELPJJ+6KWgiQtMysys3+a2czo7UvR7ePN7EMzmxP975Do9m+a2T/M7EXgDTM7zszeNbPnLLKOwNP1c9dHt5dE7++KTnQ3z8xmmFm36PYB0cczzezW/WzNTOfzyf86mtnbZjbbIvPnnxk95tfAgGjr4u7osTdE32e+mf2iDT9GaWdUFCSZ3Qf81jl3OHAu8HB0+xLgWOfcGCIzlf6q0XMmAJc6506IPh4DXA0MBw4BvtTE+3QAZjjnRgHTgO80ev/7ou+/z/lponP5fJnISHOAAHC2c24skTU87o0WpZuBFc650c65G8zsZGAQMB4YDYwzs2P39X4iTWmPE+JJ+3EiMLzRDJV5ZpYL5AOPm9kgIjNMpjd6zpvOucZz4n/snCsFMLO5ROa2eX+P96nh84kFPwFOit6fwOdz3f8VuKeZnNmNXvsTInPnQ2Rum19Fv+DriLQgujXx/JOjtznRxx2JFIlpzbyfSLNUFCSZpQATnHO7G280s98D7zjnzo6en3+30e6qPV4j2Oh+LU3/zoTc551zzR3Tkt3OudFmlk+kuPw/4H4iay4UAeOccyEzWw1kNfF8A+5wzj10gO8rshedPpJk9gaRNQsAMLP6KYzzgfXR+9/08P1nEDltBXDhvg52zpUTWabzejNLJ5JzS7QgHA/0jR5aCeQ2eurrwGXR+fsxs15m1rWNfgZpZ1QUJFnkmFlpo9u1RL5gS6Kdr4uJTHkOcBdwh5l9AKR6mOlq4Foz+xjoAZTv6wnOuTlEZtS8kMgiNiVmNotIq2FJ9JhtwAfRS1jvds69QeT01HQzWwA8xxeLhsh+0yWpIh6JrhS32znnzOxCYLJz7sx9PU/ET+pTEPHOOOCB6BVDO4nRsqciraGWgoiINFCfgoiINFBREBGRBioKIiLSQEVBREQaqCiIiEgDFQUREWnw/wHBOS8+dpOXfQAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "learn_classifier.recorder.plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 417,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: left;\">\n",
       "      <th>epoch</th>\n",
       "      <th>train_loss</th>\n",
       "      <th>valid_loss</th>\n",
       "      <th>accuracy</th>\n",
       "      <th>time</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>0</td>\n",
       "      <td>0.182568</td>\n",
       "      <td>0.089405</td>\n",
       "      <td>0.973115</td>\n",
       "      <td>00:15</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "learn_classifier.fit_one_cycle(1, 2e-2, moms=(0.8, 0.7))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 418,
   "metadata": {},
   "outputs": [],
   "source": [
    "learn_classifier.save('first')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 419,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "RNNLearner(data=TextClasDataBunch;\n",
       "\n",
       "Train: LabelList (6103 items)\n",
       "x: TextList\n",
       "xxbos xxmaj but the most painful was the huge reversal in fee income , xxunk of among private sector lenders . xxmaj essentially , it means that xxmaj yes xxmaj bank took it for granted that fees on structured loan deals will be paid and accounted for upfront on its books . xxmaj as borrowers turned xxunk , the fees tied to these loan deals fell off the xxunk . xxmaj gill has now vowed to shift to a safer accounting practice of xxunk fee income rather than booking these upfront . \n",
       " \n",
       " \n",
       "  xxmaj gill ’s move to xxunk past ways means that there will be no xxunk surprises in the future . xxmaj this is good news considering that investors love a clean image and xxunk uncertainties . \n",
       " \n",
       " \n",
       "  xxmaj but there is no gain without pain and the promise of a strong and stable balance sheet comes with some sacrifices as well . xxmaj investors will have to give up the hopes of phenomenal growth , a promise made by xxmaj kapoor .,xxbos xxmaj how formidable is the opposition alliance among xxmaj congress , xxmaj jharkhand xxmaj mukti xxmaj morcha ( xxup jmm ) and xxmaj jharkhand xxmaj vikas xxmaj morcha ( xxmaj prajatantrik ) ?,xxbos xxmaj if you want to answer any question , click on ‘ xxmaj answer ’ . xxmaj after clicking on xxmaj answer you can also check out replies of other users . xxmaj proceed to xxmaj answer either through writing or voice command . \n",
       " \n",
       " \n",
       "  xxmaj if you want to ask any question , click on “ xxmaj ask a xxmaj question \" . xxmaj few question xxunk are already xxunk to help you with your questions . xxmaj after xxunk your question , the app will send the questions to your neighbours and will let you know how many neighbours \n",
       " \n",
       " \n",
       "  have been asked the question . xxmaj click xxmaj done . xxmaj you can click on the bell icon on the xxunk of the app to follow answers to your questions .,xxbos xxmaj in global markets , gold prices edged up today as disappointing xxmaj chinese factory activity data brought back concerns about the health of the global economy , denting risk appetite . xxmaj spot gold rose 0.4 % to $ xxunk per ounce . xxmaj european equity markets xxunk down today , following weaker xxmaj asian stock markets .,xxbos xxup beijing : xxmaj chinese tech giant xxmaj huawei has announced plans to release a next - generation smartphone based on its own technology instead of xxup us components , stepping up efforts to compete directly with xxmaj western industry leaders . \n",
       " \n",
       " \n",
       "  xxmaj thursday 's announcement comes as xxmaj huawei xxmaj technologies xxmaj ltd. , the world 's biggest maker of network gear for phone companies , xxunk xxup us warnings the company might be a security risk .\n",
       "y: CategoryList\n",
       "3,0,1,3,1\n",
       "Path: .;\n",
       "\n",
       "Valid: LabelList (1525 items)\n",
       "x: TextList\n",
       "xxbos xxmaj sebi says clearing corporations having commodity derivatives segment would need to adhere to the new norms for utilisation of security deposits \n",
       " \n",
       " \n",
       "  xxup new xxup delhi : xxmaj capital markets watchdog xxmaj sebi xxmaj monday came out with a new framework for utilisation of financial security deposits available with clearing corporations , warehouse development and regulatory authority in order to rationalise such deposits . \n",
       " \n",
       " \n",
       "  xxmaj at present , on the same goods , security deposits are required to be maintained with both xxup wdra ( warehouse development and regulatory authority ) and clearing corporations , putting additional financial burden on warehouse operators . \n",
       " \n",
       " \n",
       "  xxmaj in order to rationalise financial security deposit ( xxup fsd ) and , after consultation with xxup wdra and clearing corporations , xxmaj sebi in a circular said clearing corporations having commodity derivatives segment would need to adhere to the new norms laid by the regulator for utilisation of such deposits .,xxbos xxmaj aamir xxmaj khan was last seen in xxmaj thugs of xxmaj hindostan which received poor reviews from fans and critics alike,xxbos xxmaj developers who want to attend the conference have to apply on xxmaj apple ’s website by xxmaj march 20 . xxmaj tickets cost $ 1,599 each,xxbos xxmaj actor xxmaj queen xxmaj latifah has revealed that all the original cast members of xxmaj girls xxmaj trip are ready for a sequel,xxbos xxmaj you can also ask questions in the language of your choice . xxmaj go to phone settings and select the provided options . xxmaj you also have options to follow other users ’ questions . \n",
       " \n",
       " \n",
       "  xxmaj this is how xxmaj neighbourly works : xxmaj imagine , you have just shifted to a new locality in xxmaj xxunk xxmaj vihar , xxmaj delhi . xxmaj you will need a xxunk to fix the water connection , an address of the nearest xxup lpg connection office , details about the nearest vegetable market and information \n",
       " \n",
       " \n",
       "  about the nearest park for your kids . xxmaj all you need to do is , go to xxmaj neighbourly , ask your questions and get the required information through your new neighbours .\n",
       "y: CategoryList\n",
       "3,2,1,2,1\n",
       "Path: .;\n",
       "\n",
       "Test: LabelList (2748 items)\n",
       "x: TextList\n",
       "xxbos 2019 will see gadgets like gaming smartphones and wearable medical devices lifting the user experience to a whole new level \n",
       " \n",
       " \n",
       "  mint - india - wire consumer xxunk technology trends in xxmaj new xxmaj xxunk xxunk xxunk xxunk medical xxunk \n",
       " \n",
       " \n",
       "  xxmaj new xxmaj delhi : xxmaj gadgets have become an integral part of our lives with most of us relying on some form of factor to communicate , commute , work , be informed or entertained . xxmaj year 2019 will see some gadgets lifting the user experience to a whole new level . xxmaj here ’s what we can expect to see : \n",
       " \n",
       " \n",
       "  xxmaj smartphones with foldable screens : xxmaj foldable phones are finally moving from the concept stage to commercial launches . xxmaj they are made up of organic light - emitting diode ( xxup oled ) panels with higher plastic xxunk , allowing them to be bent without damage . \n",
       " \n",
       " \n",
       "  xxup us - based display maker xxmaj royole xxmaj corp ’s foldable phone , flexpai , has already arrived in select markets , while xxmaj samsung ’s unnamed foldable phone is expected sometime next year . xxmaj samsung ’s smartphone chief executive officer xxup xxunk xxmaj koh has said they will make a million units of it . xxup lg , too , is expected to display a foldable phone next year . xxmaj meanwhile xxmaj apple , xxmaj nokia , xxmaj lenovo and xxmaj huawei have also been working on foldable phones , reportedly . \n",
       " \n",
       " \n",
       "  esim : xxmaj very soon your smartphone wo n’t need a physical xxup sim card anymore . xxmaj the esim technology , already used by xxmaj apple in its iphones and xxmaj apple xxmaj watch , xxunk the physical xxup sim with a virtually embedded chip on the motherboard . esims support multiple mobile operators and can be programmed to switch services .,xxbos xxmaj it has also xxunk a wave of changes in the xxup mcu that will make sure its future is a lot different than its past \n",
       " \n",
       " \n",
       "  xxmaj kevin xxmaj feige had signalled diversity and more representation in the post - phase 3 xxup mcu and xxmaj endgame does a lot to showcase the initiative,xxbos xxmaj it can be confusing to pick the right smartphone for yourself , so we have xxunk the top smartphones under xxmaj rs 20,000 according to their strengths . \n",
       " \n",
       " \n",
       "  xxmaj the best smartphones under ₹20,000 xxunk according to performance , camera , design and battery life \n",
       " \n",
       " \n",
       "  mint - india - wire phones under xxmaj rs 2 xxrep 4 0 xxmaj poco xxunk xxunk xxmaj note 6 xxmaj xxunk 2 xxunk xxunk xxunk xxunk xxmaj zenfone xxmaj max xxmaj pro xxup m1 \n",
       " \n",
       " \n",
       "  xxmaj gone are the days when you had to shell out big buck for buying smartphones with premium features . xxmaj technology has become more accessible recently and the biggest example of that lies in the sub - xxmaj rs 20,000 category — you get good performance , design and even software at a reasonable price . \n",
       " \n",
       " \n",
       "  xxmaj it can be confusing to pick the right smartphone for you , however , given the amount of variety that lies in the segment . xxmaj so we have xxunk the top smartphones under ₹ 20,000 according to their strengths , so you can pick the one that suits you best . \n",
       " \n",
       " \n",
       "  xxmaj this phone actually lies just north of the ₹ 20,000 price point . xxmaj but if you have an xxup hdfc debit or credit card , you can purchase the lowest spec variant with 6 xxup gb xxup ram and 64 xxup gb internal storage for as low as ₹ xxunk , making it the cheapest smartphone to run a xxmaj qualcomm xxmaj snapdragon 845 soc. xxmaj there ’s not a lot to not like about this phone — it has the fastest processor xxmaj qualcomm has to offer , some thermal xxunk to keep your smartphone cool during intense gaming sessions , a very good camera and some durable plastic that does n’t xxunk or pick up scratches . \n",
       " \n",
       " \n",
       "  xxmaj it even gets a xxunk version of the xxup miui with an app drawer that allows you colour code your applications .,xxbos xxmaj the mobile application is integrated with a dashboard to confirm and register the pre - registered cases , to enable online interface between the xxunk and the panel lawyer through video xxunk and xxunk facility . \n",
       " \n",
       " \n",
       "  xxmaj prasad said that a pilot project in this regard had proved useful and more than 50,000 people have already availed this service . xxmaj till xxmaj january , it resulted in enabling legal advice to xxunk beneficiaries that include xxunk ( xxmaj women ) , xxunk ( xxup sc ) and xxunk ( xxup st ) in 11 states including xxmaj uttar xxmaj pradesh , xxmaj bihar and all xxmaj north - xxmaj eastern states and the xxmaj state of xxmaj jammu and xxmaj kashmir , he said . \n",
       " \n",
       " \n",
       "  xxmaj the law minister was of the view that pro xxunk appearances by lawyers should be considered as a criteria for appointment as judges . xxmaj he was also of the view that there was a need for legal literacy in xxmaj india .,xxbos xxmaj we have xxunk up some of the gadgets that showed up in 2018 and left an xxunk mark on , consumers , experts and the tech industry \n",
       " \n",
       " \n",
       "  xxmaj youngsters playing xxup pubg xxmaj mobile on their smartphone for hours , elderly switching off the lights using voice or a family watching their favourite movie in 4 k xxup hdr on xxmaj netflix are some of the habits which were shaped by the gadgets around them . xxmaj we have xxunk up some of the gadgets that showed up in 2018 and left an xxunk mark on , consumers , experts and the tech industry . \n",
       " \n",
       " \n",
       "  xxmaj the xxmaj echo xxmaj plus 2 takes the whole iot experience up by a few notches with features such as xxmaj xxunk smart hub which can find iot products on its own , the temperature sensor and local voice control which works offline \n",
       " \n",
       " \n",
       "  xxmaj this is a smart fridge with built in cameras and sensors . xxmaj you can control the temperature , look inside the fridge remotely and even mirror your xxup tv or smartphone on its xxunk screen \n",
       " \n",
       " \n",
       "  xxmaj launched in xxmaj india in xxmaj april 2018 , the xxmaj google xxmaj home speaker has a 360 degree design like xxmaj echo xxmaj xxunk , but comes with the xxmaj google xxmaj assistant . xxmaj its voice match feature can identity voice and one can control compatible iot devices with it . \n",
       " \n",
       " \n",
       "  xxmaj the xxup rog xxmaj xxunk is one of the xxunk and xxunk notebooks driven by xxmaj nvidia ’s top - of - xxunk line xxup gtx 1080 graphics .\n",
       "y: EmptyLabelList\n",
       ",,,,\n",
       "Path: ., model=SequentialRNN(\n",
       "  (0): MultiBatchEncoder(\n",
       "    (module): AWD_LSTM(\n",
       "      (encoder): Embedding(13736, 400, padding_idx=1)\n",
       "      (encoder_dp): EmbeddingDropout(\n",
       "        (emb): Embedding(13736, 400, padding_idx=1)\n",
       "      )\n",
       "      (rnns): ModuleList(\n",
       "        (0): WeightDropout(\n",
       "          (module): LSTM(400, 1152, batch_first=True)\n",
       "        )\n",
       "        (1): WeightDropout(\n",
       "          (module): LSTM(1152, 1152, batch_first=True)\n",
       "        )\n",
       "        (2): WeightDropout(\n",
       "          (module): LSTM(1152, 400, batch_first=True)\n",
       "        )\n",
       "      )\n",
       "      (input_dp): RNNDropout()\n",
       "      (hidden_dps): ModuleList(\n",
       "        (0): RNNDropout()\n",
       "        (1): RNNDropout()\n",
       "        (2): RNNDropout()\n",
       "      )\n",
       "    )\n",
       "  )\n",
       "  (1): PoolingLinearClassifier(\n",
       "    (layers): Sequential(\n",
       "      (0): BatchNorm1d(1200, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "      (1): Dropout(p=0.12)\n",
       "      (2): Linear(in_features=1200, out_features=50, bias=True)\n",
       "      (3): ReLU(inplace)\n",
       "      (4): BatchNorm1d(50, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "      (5): Dropout(p=0.1)\n",
       "      (6): Linear(in_features=50, out_features=4, bias=True)\n",
       "    )\n",
       "  )\n",
       "), opt_func=functools.partial(<class 'torch.optim.adam.Adam'>, betas=(0.9, 0.99)), loss_func=FlattenedLoss of CrossEntropyLoss(), metrics=[<function accuracy at 0x7fa483b6fd90>], true_wd=True, bn_wd=True, wd=0.01, train_bn=True, path=PosixPath('.'), model_dir='models', callback_fns=[functools.partial(<class 'fastai.basic_train.Recorder'>, add_time=True, silent=False)], callbacks=[RNNTrainer\n",
       "learn: RNNLearner(data=TextClasDataBunch;\n",
       "\n",
       "Train: LabelList (6103 items)\n",
       "x: TextList\n",
       "xxbos xxmaj but the most painful was the huge reversal in fee income , xxunk of among private sector lenders . xxmaj essentially , it means that xxmaj yes xxmaj bank took it for granted that fees on structured loan deals will be paid and accounted for upfront on its books . xxmaj as borrowers turned xxunk , the fees tied to these loan deals fell off the xxunk . xxmaj gill has now vowed to shift to a safer accounting practice of xxunk fee income rather than booking these upfront . \n",
       " \n",
       " \n",
       "  xxmaj gill ’s move to xxunk past ways means that there will be no xxunk surprises in the future . xxmaj this is good news considering that investors love a clean image and xxunk uncertainties . \n",
       " \n",
       " \n",
       "  xxmaj but there is no gain without pain and the promise of a strong and stable balance sheet comes with some sacrifices as well . xxmaj investors will have to give up the hopes of phenomenal growth , a promise made by xxmaj kapoor .,xxbos xxmaj how formidable is the opposition alliance among xxmaj congress , xxmaj jharkhand xxmaj mukti xxmaj morcha ( xxup jmm ) and xxmaj jharkhand xxmaj vikas xxmaj morcha ( xxmaj prajatantrik ) ?,xxbos xxmaj if you want to answer any question , click on ‘ xxmaj answer ’ . xxmaj after clicking on xxmaj answer you can also check out replies of other users . xxmaj proceed to xxmaj answer either through writing or voice command . \n",
       " \n",
       " \n",
       "  xxmaj if you want to ask any question , click on “ xxmaj ask a xxmaj question \" . xxmaj few question xxunk are already xxunk to help you with your questions . xxmaj after xxunk your question , the app will send the questions to your neighbours and will let you know how many neighbours \n",
       " \n",
       " \n",
       "  have been asked the question . xxmaj click xxmaj done . xxmaj you can click on the bell icon on the xxunk of the app to follow answers to your questions .,xxbos xxmaj in global markets , gold prices edged up today as disappointing xxmaj chinese factory activity data brought back concerns about the health of the global economy , denting risk appetite . xxmaj spot gold rose 0.4 % to $ xxunk per ounce . xxmaj european equity markets xxunk down today , following weaker xxmaj asian stock markets .,xxbos xxup beijing : xxmaj chinese tech giant xxmaj huawei has announced plans to release a next - generation smartphone based on its own technology instead of xxup us components , stepping up efforts to compete directly with xxmaj western industry leaders . \n",
       " \n",
       " \n",
       "  xxmaj thursday 's announcement comes as xxmaj huawei xxmaj technologies xxmaj ltd. , the world 's biggest maker of network gear for phone companies , xxunk xxup us warnings the company might be a security risk .\n",
       "y: CategoryList\n",
       "3,0,1,3,1\n",
       "Path: .;\n",
       "\n",
       "Valid: LabelList (1525 items)\n",
       "x: TextList\n",
       "xxbos xxmaj sebi says clearing corporations having commodity derivatives segment would need to adhere to the new norms for utilisation of security deposits \n",
       " \n",
       " \n",
       "  xxup new xxup delhi : xxmaj capital markets watchdog xxmaj sebi xxmaj monday came out with a new framework for utilisation of financial security deposits available with clearing corporations , warehouse development and regulatory authority in order to rationalise such deposits . \n",
       " \n",
       " \n",
       "  xxmaj at present , on the same goods , security deposits are required to be maintained with both xxup wdra ( warehouse development and regulatory authority ) and clearing corporations , putting additional financial burden on warehouse operators . \n",
       " \n",
       " \n",
       "  xxmaj in order to rationalise financial security deposit ( xxup fsd ) and , after consultation with xxup wdra and clearing corporations , xxmaj sebi in a circular said clearing corporations having commodity derivatives segment would need to adhere to the new norms laid by the regulator for utilisation of such deposits .,xxbos xxmaj aamir xxmaj khan was last seen in xxmaj thugs of xxmaj hindostan which received poor reviews from fans and critics alike,xxbos xxmaj developers who want to attend the conference have to apply on xxmaj apple ’s website by xxmaj march 20 . xxmaj tickets cost $ 1,599 each,xxbos xxmaj actor xxmaj queen xxmaj latifah has revealed that all the original cast members of xxmaj girls xxmaj trip are ready for a sequel,xxbos xxmaj you can also ask questions in the language of your choice . xxmaj go to phone settings and select the provided options . xxmaj you also have options to follow other users ’ questions . \n",
       " \n",
       " \n",
       "  xxmaj this is how xxmaj neighbourly works : xxmaj imagine , you have just shifted to a new locality in xxmaj xxunk xxmaj vihar , xxmaj delhi . xxmaj you will need a xxunk to fix the water connection , an address of the nearest xxup lpg connection office , details about the nearest vegetable market and information \n",
       " \n",
       " \n",
       "  about the nearest park for your kids . xxmaj all you need to do is , go to xxmaj neighbourly , ask your questions and get the required information through your new neighbours .\n",
       "y: CategoryList\n",
       "3,2,1,2,1\n",
       "Path: .;\n",
       "\n",
       "Test: LabelList (2748 items)\n",
       "x: TextList\n",
       "xxbos 2019 will see gadgets like gaming smartphones and wearable medical devices lifting the user experience to a whole new level \n",
       " \n",
       " \n",
       "  mint - india - wire consumer xxunk technology trends in xxmaj new xxmaj xxunk xxunk xxunk xxunk medical xxunk \n",
       " \n",
       " \n",
       "  xxmaj new xxmaj delhi : xxmaj gadgets have become an integral part of our lives with most of us relying on some form of factor to communicate , commute , work , be informed or entertained . xxmaj year 2019 will see some gadgets lifting the user experience to a whole new level . xxmaj here ’s what we can expect to see : \n",
       " \n",
       " \n",
       "  xxmaj smartphones with foldable screens : xxmaj foldable phones are finally moving from the concept stage to commercial launches . xxmaj they are made up of organic light - emitting diode ( xxup oled ) panels with higher plastic xxunk , allowing them to be bent without damage . \n",
       " \n",
       " \n",
       "  xxup us - based display maker xxmaj royole xxmaj corp ’s foldable phone , flexpai , has already arrived in select markets , while xxmaj samsung ’s unnamed foldable phone is expected sometime next year . xxmaj samsung ’s smartphone chief executive officer xxup xxunk xxmaj koh has said they will make a million units of it . xxup lg , too , is expected to display a foldable phone next year . xxmaj meanwhile xxmaj apple , xxmaj nokia , xxmaj lenovo and xxmaj huawei have also been working on foldable phones , reportedly . \n",
       " \n",
       " \n",
       "  esim : xxmaj very soon your smartphone wo n’t need a physical xxup sim card anymore . xxmaj the esim technology , already used by xxmaj apple in its iphones and xxmaj apple xxmaj watch , xxunk the physical xxup sim with a virtually embedded chip on the motherboard . esims support multiple mobile operators and can be programmed to switch services .,xxbos xxmaj it has also xxunk a wave of changes in the xxup mcu that will make sure its future is a lot different than its past \n",
       " \n",
       " \n",
       "  xxmaj kevin xxmaj feige had signalled diversity and more representation in the post - phase 3 xxup mcu and xxmaj endgame does a lot to showcase the initiative,xxbos xxmaj it can be confusing to pick the right smartphone for yourself , so we have xxunk the top smartphones under xxmaj rs 20,000 according to their strengths . \n",
       " \n",
       " \n",
       "  xxmaj the best smartphones under ₹20,000 xxunk according to performance , camera , design and battery life \n",
       " \n",
       " \n",
       "  mint - india - wire phones under xxmaj rs 2 xxrep 4 0 xxmaj poco xxunk xxunk xxmaj note 6 xxmaj xxunk 2 xxunk xxunk xxunk xxunk xxmaj zenfone xxmaj max xxmaj pro xxup m1 \n",
       " \n",
       " \n",
       "  xxmaj gone are the days when you had to shell out big buck for buying smartphones with premium features . xxmaj technology has become more accessible recently and the biggest example of that lies in the sub - xxmaj rs 20,000 category — you get good performance , design and even software at a reasonable price . \n",
       " \n",
       " \n",
       "  xxmaj it can be confusing to pick the right smartphone for you , however , given the amount of variety that lies in the segment . xxmaj so we have xxunk the top smartphones under ₹ 20,000 according to their strengths , so you can pick the one that suits you best . \n",
       " \n",
       " \n",
       "  xxmaj this phone actually lies just north of the ₹ 20,000 price point . xxmaj but if you have an xxup hdfc debit or credit card , you can purchase the lowest spec variant with 6 xxup gb xxup ram and 64 xxup gb internal storage for as low as ₹ xxunk , making it the cheapest smartphone to run a xxmaj qualcomm xxmaj snapdragon 845 soc. xxmaj there ’s not a lot to not like about this phone — it has the fastest processor xxmaj qualcomm has to offer , some thermal xxunk to keep your smartphone cool during intense gaming sessions , a very good camera and some durable plastic that does n’t xxunk or pick up scratches . \n",
       " \n",
       " \n",
       "  xxmaj it even gets a xxunk version of the xxup miui with an app drawer that allows you colour code your applications .,xxbos xxmaj the mobile application is integrated with a dashboard to confirm and register the pre - registered cases , to enable online interface between the xxunk and the panel lawyer through video xxunk and xxunk facility . \n",
       " \n",
       " \n",
       "  xxmaj prasad said that a pilot project in this regard had proved useful and more than 50,000 people have already availed this service . xxmaj till xxmaj january , it resulted in enabling legal advice to xxunk beneficiaries that include xxunk ( xxmaj women ) , xxunk ( xxup sc ) and xxunk ( xxup st ) in 11 states including xxmaj uttar xxmaj pradesh , xxmaj bihar and all xxmaj north - xxmaj eastern states and the xxmaj state of xxmaj jammu and xxmaj kashmir , he said . \n",
       " \n",
       " \n",
       "  xxmaj the law minister was of the view that pro xxunk appearances by lawyers should be considered as a criteria for appointment as judges . xxmaj he was also of the view that there was a need for legal literacy in xxmaj india .,xxbos xxmaj we have xxunk up some of the gadgets that showed up in 2018 and left an xxunk mark on , consumers , experts and the tech industry \n",
       " \n",
       " \n",
       "  xxmaj youngsters playing xxup pubg xxmaj mobile on their smartphone for hours , elderly switching off the lights using voice or a family watching their favourite movie in 4 k xxup hdr on xxmaj netflix are some of the habits which were shaped by the gadgets around them . xxmaj we have xxunk up some of the gadgets that showed up in 2018 and left an xxunk mark on , consumers , experts and the tech industry . \n",
       " \n",
       " \n",
       "  xxmaj the xxmaj echo xxmaj plus 2 takes the whole iot experience up by a few notches with features such as xxmaj xxunk smart hub which can find iot products on its own , the temperature sensor and local voice control which works offline \n",
       " \n",
       " \n",
       "  xxmaj this is a smart fridge with built in cameras and sensors . xxmaj you can control the temperature , look inside the fridge remotely and even mirror your xxup tv or smartphone on its xxunk screen \n",
       " \n",
       " \n",
       "  xxmaj launched in xxmaj india in xxmaj april 2018 , the xxmaj google xxmaj home speaker has a 360 degree design like xxmaj echo xxmaj xxunk , but comes with the xxmaj google xxmaj assistant . xxmaj its voice match feature can identity voice and one can control compatible iot devices with it . \n",
       " \n",
       " \n",
       "  xxmaj the xxup rog xxmaj xxunk is one of the xxunk and xxunk notebooks driven by xxmaj nvidia ’s top - of - xxunk line xxup gtx 1080 graphics .\n",
       "y: EmptyLabelList\n",
       ",,,,\n",
       "Path: ., model=SequentialRNN(\n",
       "  (0): MultiBatchEncoder(\n",
       "    (module): AWD_LSTM(\n",
       "      (encoder): Embedding(13736, 400, padding_idx=1)\n",
       "      (encoder_dp): EmbeddingDropout(\n",
       "        (emb): Embedding(13736, 400, padding_idx=1)\n",
       "      )\n",
       "      (rnns): ModuleList(\n",
       "        (0): WeightDropout(\n",
       "          (module): LSTM(400, 1152, batch_first=True)\n",
       "        )\n",
       "        (1): WeightDropout(\n",
       "          (module): LSTM(1152, 1152, batch_first=True)\n",
       "        )\n",
       "        (2): WeightDropout(\n",
       "          (module): LSTM(1152, 400, batch_first=True)\n",
       "        )\n",
       "      )\n",
       "      (input_dp): RNNDropout()\n",
       "      (hidden_dps): ModuleList(\n",
       "        (0): RNNDropout()\n",
       "        (1): RNNDropout()\n",
       "        (2): RNNDropout()\n",
       "      )\n",
       "    )\n",
       "  )\n",
       "  (1): PoolingLinearClassifier(\n",
       "    (layers): Sequential(\n",
       "      (0): BatchNorm1d(1200, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "      (1): Dropout(p=0.12)\n",
       "      (2): Linear(in_features=1200, out_features=50, bias=True)\n",
       "      (3): ReLU(inplace)\n",
       "      (4): BatchNorm1d(50, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "      (5): Dropout(p=0.1)\n",
       "      (6): Linear(in_features=50, out_features=4, bias=True)\n",
       "    )\n",
       "  )\n",
       "), opt_func=functools.partial(<class 'torch.optim.adam.Adam'>, betas=(0.9, 0.99)), loss_func=FlattenedLoss of CrossEntropyLoss(), metrics=[<function accuracy at 0x7fa483b6fd90>], true_wd=True, bn_wd=True, wd=0.01, train_bn=True, path=PosixPath('.'), model_dir='models', callback_fns=[functools.partial(<class 'fastai.basic_train.Recorder'>, add_time=True, silent=False)], callbacks=[...], layer_groups=[Sequential(\n",
       "  (0): Embedding(13736, 400, padding_idx=1)\n",
       "  (1): EmbeddingDropout(\n",
       "    (emb): Embedding(13736, 400, padding_idx=1)\n",
       "  )\n",
       "), Sequential(\n",
       "  (0): WeightDropout(\n",
       "    (module): LSTM(400, 1152, batch_first=True)\n",
       "  )\n",
       "  (1): RNNDropout()\n",
       "), Sequential(\n",
       "  (0): WeightDropout(\n",
       "    (module): LSTM(1152, 1152, batch_first=True)\n",
       "  )\n",
       "  (1): RNNDropout()\n",
       "), Sequential(\n",
       "  (0): WeightDropout(\n",
       "    (module): LSTM(1152, 400, batch_first=True)\n",
       "  )\n",
       "  (1): RNNDropout()\n",
       "), Sequential(\n",
       "  (0): PoolingLinearClassifier(\n",
       "    (layers): Sequential(\n",
       "      (0): BatchNorm1d(1200, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "      (1): Dropout(p=0.12)\n",
       "      (2): Linear(in_features=1200, out_features=50, bias=True)\n",
       "      (3): ReLU(inplace)\n",
       "      (4): BatchNorm1d(50, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "      (5): Dropout(p=0.1)\n",
       "      (6): Linear(in_features=50, out_features=4, bias=True)\n",
       "    )\n",
       "  )\n",
       ")], add_time=True, silent=False)\n",
       "alpha: 2.0\n",
       "beta: 1.0], layer_groups=[Sequential(\n",
       "  (0): Embedding(13736, 400, padding_idx=1)\n",
       "  (1): EmbeddingDropout(\n",
       "    (emb): Embedding(13736, 400, padding_idx=1)\n",
       "  )\n",
       "), Sequential(\n",
       "  (0): WeightDropout(\n",
       "    (module): LSTM(400, 1152, batch_first=True)\n",
       "  )\n",
       "  (1): RNNDropout()\n",
       "), Sequential(\n",
       "  (0): WeightDropout(\n",
       "    (module): LSTM(1152, 1152, batch_first=True)\n",
       "  )\n",
       "  (1): RNNDropout()\n",
       "), Sequential(\n",
       "  (0): WeightDropout(\n",
       "    (module): LSTM(1152, 400, batch_first=True)\n",
       "  )\n",
       "  (1): RNNDropout()\n",
       "), Sequential(\n",
       "  (0): PoolingLinearClassifier(\n",
       "    (layers): Sequential(\n",
       "      (0): BatchNorm1d(1200, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "      (1): Dropout(p=0.12)\n",
       "      (2): Linear(in_features=1200, out_features=50, bias=True)\n",
       "      (3): ReLU(inplace)\n",
       "      (4): BatchNorm1d(50, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "      (5): Dropout(p=0.1)\n",
       "      (6): Linear(in_features=50, out_features=4, bias=True)\n",
       "    )\n",
       "  )\n",
       ")], add_time=True, silent=False)"
      ]
     },
     "execution_count": 419,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "learn_classifier.load('first')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 420,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: left;\">\n",
       "      <th>epoch</th>\n",
       "      <th>train_loss</th>\n",
       "      <th>valid_loss</th>\n",
       "      <th>accuracy</th>\n",
       "      <th>time</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>0</td>\n",
       "      <td>0.164184</td>\n",
       "      <td>0.083841</td>\n",
       "      <td>0.974426</td>\n",
       "      <td>00:18</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "learn_classifier.freeze_to(-2)\n",
    "learn_classifier.fit_one_cycle(1, slice(1e-2/(2.6**4),1e-2), moms=(0.8,0.7))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 421,
   "metadata": {},
   "outputs": [],
   "source": [
    "learn_classifier.save('second')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 422,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "RNNLearner(data=TextClasDataBunch;\n",
       "\n",
       "Train: LabelList (6103 items)\n",
       "x: TextList\n",
       "xxbos xxmaj but the most painful was the huge reversal in fee income , xxunk of among private sector lenders . xxmaj essentially , it means that xxmaj yes xxmaj bank took it for granted that fees on structured loan deals will be paid and accounted for upfront on its books . xxmaj as borrowers turned xxunk , the fees tied to these loan deals fell off the xxunk . xxmaj gill has now vowed to shift to a safer accounting practice of xxunk fee income rather than booking these upfront . \n",
       " \n",
       " \n",
       "  xxmaj gill ’s move to xxunk past ways means that there will be no xxunk surprises in the future . xxmaj this is good news considering that investors love a clean image and xxunk uncertainties . \n",
       " \n",
       " \n",
       "  xxmaj but there is no gain without pain and the promise of a strong and stable balance sheet comes with some sacrifices as well . xxmaj investors will have to give up the hopes of phenomenal growth , a promise made by xxmaj kapoor .,xxbos xxmaj how formidable is the opposition alliance among xxmaj congress , xxmaj jharkhand xxmaj mukti xxmaj morcha ( xxup jmm ) and xxmaj jharkhand xxmaj vikas xxmaj morcha ( xxmaj prajatantrik ) ?,xxbos xxmaj if you want to answer any question , click on ‘ xxmaj answer ’ . xxmaj after clicking on xxmaj answer you can also check out replies of other users . xxmaj proceed to xxmaj answer either through writing or voice command . \n",
       " \n",
       " \n",
       "  xxmaj if you want to ask any question , click on “ xxmaj ask a xxmaj question \" . xxmaj few question xxunk are already xxunk to help you with your questions . xxmaj after xxunk your question , the app will send the questions to your neighbours and will let you know how many neighbours \n",
       " \n",
       " \n",
       "  have been asked the question . xxmaj click xxmaj done . xxmaj you can click on the bell icon on the xxunk of the app to follow answers to your questions .,xxbos xxmaj in global markets , gold prices edged up today as disappointing xxmaj chinese factory activity data brought back concerns about the health of the global economy , denting risk appetite . xxmaj spot gold rose 0.4 % to $ xxunk per ounce . xxmaj european equity markets xxunk down today , following weaker xxmaj asian stock markets .,xxbos xxup beijing : xxmaj chinese tech giant xxmaj huawei has announced plans to release a next - generation smartphone based on its own technology instead of xxup us components , stepping up efforts to compete directly with xxmaj western industry leaders . \n",
       " \n",
       " \n",
       "  xxmaj thursday 's announcement comes as xxmaj huawei xxmaj technologies xxmaj ltd. , the world 's biggest maker of network gear for phone companies , xxunk xxup us warnings the company might be a security risk .\n",
       "y: CategoryList\n",
       "3,0,1,3,1\n",
       "Path: .;\n",
       "\n",
       "Valid: LabelList (1525 items)\n",
       "x: TextList\n",
       "xxbos xxmaj sebi says clearing corporations having commodity derivatives segment would need to adhere to the new norms for utilisation of security deposits \n",
       " \n",
       " \n",
       "  xxup new xxup delhi : xxmaj capital markets watchdog xxmaj sebi xxmaj monday came out with a new framework for utilisation of financial security deposits available with clearing corporations , warehouse development and regulatory authority in order to rationalise such deposits . \n",
       " \n",
       " \n",
       "  xxmaj at present , on the same goods , security deposits are required to be maintained with both xxup wdra ( warehouse development and regulatory authority ) and clearing corporations , putting additional financial burden on warehouse operators . \n",
       " \n",
       " \n",
       "  xxmaj in order to rationalise financial security deposit ( xxup fsd ) and , after consultation with xxup wdra and clearing corporations , xxmaj sebi in a circular said clearing corporations having commodity derivatives segment would need to adhere to the new norms laid by the regulator for utilisation of such deposits .,xxbos xxmaj aamir xxmaj khan was last seen in xxmaj thugs of xxmaj hindostan which received poor reviews from fans and critics alike,xxbos xxmaj developers who want to attend the conference have to apply on xxmaj apple ’s website by xxmaj march 20 . xxmaj tickets cost $ 1,599 each,xxbos xxmaj actor xxmaj queen xxmaj latifah has revealed that all the original cast members of xxmaj girls xxmaj trip are ready for a sequel,xxbos xxmaj you can also ask questions in the language of your choice . xxmaj go to phone settings and select the provided options . xxmaj you also have options to follow other users ’ questions . \n",
       " \n",
       " \n",
       "  xxmaj this is how xxmaj neighbourly works : xxmaj imagine , you have just shifted to a new locality in xxmaj xxunk xxmaj vihar , xxmaj delhi . xxmaj you will need a xxunk to fix the water connection , an address of the nearest xxup lpg connection office , details about the nearest vegetable market and information \n",
       " \n",
       " \n",
       "  about the nearest park for your kids . xxmaj all you need to do is , go to xxmaj neighbourly , ask your questions and get the required information through your new neighbours .\n",
       "y: CategoryList\n",
       "3,2,1,2,1\n",
       "Path: .;\n",
       "\n",
       "Test: LabelList (2748 items)\n",
       "x: TextList\n",
       "xxbos 2019 will see gadgets like gaming smartphones and wearable medical devices lifting the user experience to a whole new level \n",
       " \n",
       " \n",
       "  mint - india - wire consumer xxunk technology trends in xxmaj new xxmaj xxunk xxunk xxunk xxunk medical xxunk \n",
       " \n",
       " \n",
       "  xxmaj new xxmaj delhi : xxmaj gadgets have become an integral part of our lives with most of us relying on some form of factor to communicate , commute , work , be informed or entertained . xxmaj year 2019 will see some gadgets lifting the user experience to a whole new level . xxmaj here ’s what we can expect to see : \n",
       " \n",
       " \n",
       "  xxmaj smartphones with foldable screens : xxmaj foldable phones are finally moving from the concept stage to commercial launches . xxmaj they are made up of organic light - emitting diode ( xxup oled ) panels with higher plastic xxunk , allowing them to be bent without damage . \n",
       " \n",
       " \n",
       "  xxup us - based display maker xxmaj royole xxmaj corp ’s foldable phone , flexpai , has already arrived in select markets , while xxmaj samsung ’s unnamed foldable phone is expected sometime next year . xxmaj samsung ’s smartphone chief executive officer xxup xxunk xxmaj koh has said they will make a million units of it . xxup lg , too , is expected to display a foldable phone next year . xxmaj meanwhile xxmaj apple , xxmaj nokia , xxmaj lenovo and xxmaj huawei have also been working on foldable phones , reportedly . \n",
       " \n",
       " \n",
       "  esim : xxmaj very soon your smartphone wo n’t need a physical xxup sim card anymore . xxmaj the esim technology , already used by xxmaj apple in its iphones and xxmaj apple xxmaj watch , xxunk the physical xxup sim with a virtually embedded chip on the motherboard . esims support multiple mobile operators and can be programmed to switch services .,xxbos xxmaj it has also xxunk a wave of changes in the xxup mcu that will make sure its future is a lot different than its past \n",
       " \n",
       " \n",
       "  xxmaj kevin xxmaj feige had signalled diversity and more representation in the post - phase 3 xxup mcu and xxmaj endgame does a lot to showcase the initiative,xxbos xxmaj it can be confusing to pick the right smartphone for yourself , so we have xxunk the top smartphones under xxmaj rs 20,000 according to their strengths . \n",
       " \n",
       " \n",
       "  xxmaj the best smartphones under ₹20,000 xxunk according to performance , camera , design and battery life \n",
       " \n",
       " \n",
       "  mint - india - wire phones under xxmaj rs 2 xxrep 4 0 xxmaj poco xxunk xxunk xxmaj note 6 xxmaj xxunk 2 xxunk xxunk xxunk xxunk xxmaj zenfone xxmaj max xxmaj pro xxup m1 \n",
       " \n",
       " \n",
       "  xxmaj gone are the days when you had to shell out big buck for buying smartphones with premium features . xxmaj technology has become more accessible recently and the biggest example of that lies in the sub - xxmaj rs 20,000 category — you get good performance , design and even software at a reasonable price . \n",
       " \n",
       " \n",
       "  xxmaj it can be confusing to pick the right smartphone for you , however , given the amount of variety that lies in the segment . xxmaj so we have xxunk the top smartphones under ₹ 20,000 according to their strengths , so you can pick the one that suits you best . \n",
       " \n",
       " \n",
       "  xxmaj this phone actually lies just north of the ₹ 20,000 price point . xxmaj but if you have an xxup hdfc debit or credit card , you can purchase the lowest spec variant with 6 xxup gb xxup ram and 64 xxup gb internal storage for as low as ₹ xxunk , making it the cheapest smartphone to run a xxmaj qualcomm xxmaj snapdragon 845 soc. xxmaj there ’s not a lot to not like about this phone — it has the fastest processor xxmaj qualcomm has to offer , some thermal xxunk to keep your smartphone cool during intense gaming sessions , a very good camera and some durable plastic that does n’t xxunk or pick up scratches . \n",
       " \n",
       " \n",
       "  xxmaj it even gets a xxunk version of the xxup miui with an app drawer that allows you colour code your applications .,xxbos xxmaj the mobile application is integrated with a dashboard to confirm and register the pre - registered cases , to enable online interface between the xxunk and the panel lawyer through video xxunk and xxunk facility . \n",
       " \n",
       " \n",
       "  xxmaj prasad said that a pilot project in this regard had proved useful and more than 50,000 people have already availed this service . xxmaj till xxmaj january , it resulted in enabling legal advice to xxunk beneficiaries that include xxunk ( xxmaj women ) , xxunk ( xxup sc ) and xxunk ( xxup st ) in 11 states including xxmaj uttar xxmaj pradesh , xxmaj bihar and all xxmaj north - xxmaj eastern states and the xxmaj state of xxmaj jammu and xxmaj kashmir , he said . \n",
       " \n",
       " \n",
       "  xxmaj the law minister was of the view that pro xxunk appearances by lawyers should be considered as a criteria for appointment as judges . xxmaj he was also of the view that there was a need for legal literacy in xxmaj india .,xxbos xxmaj we have xxunk up some of the gadgets that showed up in 2018 and left an xxunk mark on , consumers , experts and the tech industry \n",
       " \n",
       " \n",
       "  xxmaj youngsters playing xxup pubg xxmaj mobile on their smartphone for hours , elderly switching off the lights using voice or a family watching their favourite movie in 4 k xxup hdr on xxmaj netflix are some of the habits which were shaped by the gadgets around them . xxmaj we have xxunk up some of the gadgets that showed up in 2018 and left an xxunk mark on , consumers , experts and the tech industry . \n",
       " \n",
       " \n",
       "  xxmaj the xxmaj echo xxmaj plus 2 takes the whole iot experience up by a few notches with features such as xxmaj xxunk smart hub which can find iot products on its own , the temperature sensor and local voice control which works offline \n",
       " \n",
       " \n",
       "  xxmaj this is a smart fridge with built in cameras and sensors . xxmaj you can control the temperature , look inside the fridge remotely and even mirror your xxup tv or smartphone on its xxunk screen \n",
       " \n",
       " \n",
       "  xxmaj launched in xxmaj india in xxmaj april 2018 , the xxmaj google xxmaj home speaker has a 360 degree design like xxmaj echo xxmaj xxunk , but comes with the xxmaj google xxmaj assistant . xxmaj its voice match feature can identity voice and one can control compatible iot devices with it . \n",
       " \n",
       " \n",
       "  xxmaj the xxup rog xxmaj xxunk is one of the xxunk and xxunk notebooks driven by xxmaj nvidia ’s top - of - xxunk line xxup gtx 1080 graphics .\n",
       "y: EmptyLabelList\n",
       ",,,,\n",
       "Path: ., model=SequentialRNN(\n",
       "  (0): MultiBatchEncoder(\n",
       "    (module): AWD_LSTM(\n",
       "      (encoder): Embedding(13736, 400, padding_idx=1)\n",
       "      (encoder_dp): EmbeddingDropout(\n",
       "        (emb): Embedding(13736, 400, padding_idx=1)\n",
       "      )\n",
       "      (rnns): ModuleList(\n",
       "        (0): WeightDropout(\n",
       "          (module): LSTM(400, 1152, batch_first=True)\n",
       "        )\n",
       "        (1): WeightDropout(\n",
       "          (module): LSTM(1152, 1152, batch_first=True)\n",
       "        )\n",
       "        (2): WeightDropout(\n",
       "          (module): LSTM(1152, 400, batch_first=True)\n",
       "        )\n",
       "      )\n",
       "      (input_dp): RNNDropout()\n",
       "      (hidden_dps): ModuleList(\n",
       "        (0): RNNDropout()\n",
       "        (1): RNNDropout()\n",
       "        (2): RNNDropout()\n",
       "      )\n",
       "    )\n",
       "  )\n",
       "  (1): PoolingLinearClassifier(\n",
       "    (layers): Sequential(\n",
       "      (0): BatchNorm1d(1200, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "      (1): Dropout(p=0.12)\n",
       "      (2): Linear(in_features=1200, out_features=50, bias=True)\n",
       "      (3): ReLU(inplace)\n",
       "      (4): BatchNorm1d(50, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "      (5): Dropout(p=0.1)\n",
       "      (6): Linear(in_features=50, out_features=4, bias=True)\n",
       "    )\n",
       "  )\n",
       "), opt_func=functools.partial(<class 'torch.optim.adam.Adam'>, betas=(0.9, 0.99)), loss_func=FlattenedLoss of CrossEntropyLoss(), metrics=[<function accuracy at 0x7fa483b6fd90>], true_wd=True, bn_wd=True, wd=0.01, train_bn=True, path=PosixPath('.'), model_dir='models', callback_fns=[functools.partial(<class 'fastai.basic_train.Recorder'>, add_time=True, silent=False)], callbacks=[RNNTrainer\n",
       "learn: RNNLearner(data=TextClasDataBunch;\n",
       "\n",
       "Train: LabelList (6103 items)\n",
       "x: TextList\n",
       "xxbos xxmaj but the most painful was the huge reversal in fee income , xxunk of among private sector lenders . xxmaj essentially , it means that xxmaj yes xxmaj bank took it for granted that fees on structured loan deals will be paid and accounted for upfront on its books . xxmaj as borrowers turned xxunk , the fees tied to these loan deals fell off the xxunk . xxmaj gill has now vowed to shift to a safer accounting practice of xxunk fee income rather than booking these upfront . \n",
       " \n",
       " \n",
       "  xxmaj gill ’s move to xxunk past ways means that there will be no xxunk surprises in the future . xxmaj this is good news considering that investors love a clean image and xxunk uncertainties . \n",
       " \n",
       " \n",
       "  xxmaj but there is no gain without pain and the promise of a strong and stable balance sheet comes with some sacrifices as well . xxmaj investors will have to give up the hopes of phenomenal growth , a promise made by xxmaj kapoor .,xxbos xxmaj how formidable is the opposition alliance among xxmaj congress , xxmaj jharkhand xxmaj mukti xxmaj morcha ( xxup jmm ) and xxmaj jharkhand xxmaj vikas xxmaj morcha ( xxmaj prajatantrik ) ?,xxbos xxmaj if you want to answer any question , click on ‘ xxmaj answer ’ . xxmaj after clicking on xxmaj answer you can also check out replies of other users . xxmaj proceed to xxmaj answer either through writing or voice command . \n",
       " \n",
       " \n",
       "  xxmaj if you want to ask any question , click on “ xxmaj ask a xxmaj question \" . xxmaj few question xxunk are already xxunk to help you with your questions . xxmaj after xxunk your question , the app will send the questions to your neighbours and will let you know how many neighbours \n",
       " \n",
       " \n",
       "  have been asked the question . xxmaj click xxmaj done . xxmaj you can click on the bell icon on the xxunk of the app to follow answers to your questions .,xxbos xxmaj in global markets , gold prices edged up today as disappointing xxmaj chinese factory activity data brought back concerns about the health of the global economy , denting risk appetite . xxmaj spot gold rose 0.4 % to $ xxunk per ounce . xxmaj european equity markets xxunk down today , following weaker xxmaj asian stock markets .,xxbos xxup beijing : xxmaj chinese tech giant xxmaj huawei has announced plans to release a next - generation smartphone based on its own technology instead of xxup us components , stepping up efforts to compete directly with xxmaj western industry leaders . \n",
       " \n",
       " \n",
       "  xxmaj thursday 's announcement comes as xxmaj huawei xxmaj technologies xxmaj ltd. , the world 's biggest maker of network gear for phone companies , xxunk xxup us warnings the company might be a security risk .\n",
       "y: CategoryList\n",
       "3,0,1,3,1\n",
       "Path: .;\n",
       "\n",
       "Valid: LabelList (1525 items)\n",
       "x: TextList\n",
       "xxbos xxmaj sebi says clearing corporations having commodity derivatives segment would need to adhere to the new norms for utilisation of security deposits \n",
       " \n",
       " \n",
       "  xxup new xxup delhi : xxmaj capital markets watchdog xxmaj sebi xxmaj monday came out with a new framework for utilisation of financial security deposits available with clearing corporations , warehouse development and regulatory authority in order to rationalise such deposits . \n",
       " \n",
       " \n",
       "  xxmaj at present , on the same goods , security deposits are required to be maintained with both xxup wdra ( warehouse development and regulatory authority ) and clearing corporations , putting additional financial burden on warehouse operators . \n",
       " \n",
       " \n",
       "  xxmaj in order to rationalise financial security deposit ( xxup fsd ) and , after consultation with xxup wdra and clearing corporations , xxmaj sebi in a circular said clearing corporations having commodity derivatives segment would need to adhere to the new norms laid by the regulator for utilisation of such deposits .,xxbos xxmaj aamir xxmaj khan was last seen in xxmaj thugs of xxmaj hindostan which received poor reviews from fans and critics alike,xxbos xxmaj developers who want to attend the conference have to apply on xxmaj apple ’s website by xxmaj march 20 . xxmaj tickets cost $ 1,599 each,xxbos xxmaj actor xxmaj queen xxmaj latifah has revealed that all the original cast members of xxmaj girls xxmaj trip are ready for a sequel,xxbos xxmaj you can also ask questions in the language of your choice . xxmaj go to phone settings and select the provided options . xxmaj you also have options to follow other users ’ questions . \n",
       " \n",
       " \n",
       "  xxmaj this is how xxmaj neighbourly works : xxmaj imagine , you have just shifted to a new locality in xxmaj xxunk xxmaj vihar , xxmaj delhi . xxmaj you will need a xxunk to fix the water connection , an address of the nearest xxup lpg connection office , details about the nearest vegetable market and information \n",
       " \n",
       " \n",
       "  about the nearest park for your kids . xxmaj all you need to do is , go to xxmaj neighbourly , ask your questions and get the required information through your new neighbours .\n",
       "y: CategoryList\n",
       "3,2,1,2,1\n",
       "Path: .;\n",
       "\n",
       "Test: LabelList (2748 items)\n",
       "x: TextList\n",
       "xxbos 2019 will see gadgets like gaming smartphones and wearable medical devices lifting the user experience to a whole new level \n",
       " \n",
       " \n",
       "  mint - india - wire consumer xxunk technology trends in xxmaj new xxmaj xxunk xxunk xxunk xxunk medical xxunk \n",
       " \n",
       " \n",
       "  xxmaj new xxmaj delhi : xxmaj gadgets have become an integral part of our lives with most of us relying on some form of factor to communicate , commute , work , be informed or entertained . xxmaj year 2019 will see some gadgets lifting the user experience to a whole new level . xxmaj here ’s what we can expect to see : \n",
       " \n",
       " \n",
       "  xxmaj smartphones with foldable screens : xxmaj foldable phones are finally moving from the concept stage to commercial launches . xxmaj they are made up of organic light - emitting diode ( xxup oled ) panels with higher plastic xxunk , allowing them to be bent without damage . \n",
       " \n",
       " \n",
       "  xxup us - based display maker xxmaj royole xxmaj corp ’s foldable phone , flexpai , has already arrived in select markets , while xxmaj samsung ’s unnamed foldable phone is expected sometime next year . xxmaj samsung ’s smartphone chief executive officer xxup xxunk xxmaj koh has said they will make a million units of it . xxup lg , too , is expected to display a foldable phone next year . xxmaj meanwhile xxmaj apple , xxmaj nokia , xxmaj lenovo and xxmaj huawei have also been working on foldable phones , reportedly . \n",
       " \n",
       " \n",
       "  esim : xxmaj very soon your smartphone wo n’t need a physical xxup sim card anymore . xxmaj the esim technology , already used by xxmaj apple in its iphones and xxmaj apple xxmaj watch , xxunk the physical xxup sim with a virtually embedded chip on the motherboard . esims support multiple mobile operators and can be programmed to switch services .,xxbos xxmaj it has also xxunk a wave of changes in the xxup mcu that will make sure its future is a lot different than its past \n",
       " \n",
       " \n",
       "  xxmaj kevin xxmaj feige had signalled diversity and more representation in the post - phase 3 xxup mcu and xxmaj endgame does a lot to showcase the initiative,xxbos xxmaj it can be confusing to pick the right smartphone for yourself , so we have xxunk the top smartphones under xxmaj rs 20,000 according to their strengths . \n",
       " \n",
       " \n",
       "  xxmaj the best smartphones under ₹20,000 xxunk according to performance , camera , design and battery life \n",
       " \n",
       " \n",
       "  mint - india - wire phones under xxmaj rs 2 xxrep 4 0 xxmaj poco xxunk xxunk xxmaj note 6 xxmaj xxunk 2 xxunk xxunk xxunk xxunk xxmaj zenfone xxmaj max xxmaj pro xxup m1 \n",
       " \n",
       " \n",
       "  xxmaj gone are the days when you had to shell out big buck for buying smartphones with premium features . xxmaj technology has become more accessible recently and the biggest example of that lies in the sub - xxmaj rs 20,000 category — you get good performance , design and even software at a reasonable price . \n",
       " \n",
       " \n",
       "  xxmaj it can be confusing to pick the right smartphone for you , however , given the amount of variety that lies in the segment . xxmaj so we have xxunk the top smartphones under ₹ 20,000 according to their strengths , so you can pick the one that suits you best . \n",
       " \n",
       " \n",
       "  xxmaj this phone actually lies just north of the ₹ 20,000 price point . xxmaj but if you have an xxup hdfc debit or credit card , you can purchase the lowest spec variant with 6 xxup gb xxup ram and 64 xxup gb internal storage for as low as ₹ xxunk , making it the cheapest smartphone to run a xxmaj qualcomm xxmaj snapdragon 845 soc. xxmaj there ’s not a lot to not like about this phone — it has the fastest processor xxmaj qualcomm has to offer , some thermal xxunk to keep your smartphone cool during intense gaming sessions , a very good camera and some durable plastic that does n’t xxunk or pick up scratches . \n",
       " \n",
       " \n",
       "  xxmaj it even gets a xxunk version of the xxup miui with an app drawer that allows you colour code your applications .,xxbos xxmaj the mobile application is integrated with a dashboard to confirm and register the pre - registered cases , to enable online interface between the xxunk and the panel lawyer through video xxunk and xxunk facility . \n",
       " \n",
       " \n",
       "  xxmaj prasad said that a pilot project in this regard had proved useful and more than 50,000 people have already availed this service . xxmaj till xxmaj january , it resulted in enabling legal advice to xxunk beneficiaries that include xxunk ( xxmaj women ) , xxunk ( xxup sc ) and xxunk ( xxup st ) in 11 states including xxmaj uttar xxmaj pradesh , xxmaj bihar and all xxmaj north - xxmaj eastern states and the xxmaj state of xxmaj jammu and xxmaj kashmir , he said . \n",
       " \n",
       " \n",
       "  xxmaj the law minister was of the view that pro xxunk appearances by lawyers should be considered as a criteria for appointment as judges . xxmaj he was also of the view that there was a need for legal literacy in xxmaj india .,xxbos xxmaj we have xxunk up some of the gadgets that showed up in 2018 and left an xxunk mark on , consumers , experts and the tech industry \n",
       " \n",
       " \n",
       "  xxmaj youngsters playing xxup pubg xxmaj mobile on their smartphone for hours , elderly switching off the lights using voice or a family watching their favourite movie in 4 k xxup hdr on xxmaj netflix are some of the habits which were shaped by the gadgets around them . xxmaj we have xxunk up some of the gadgets that showed up in 2018 and left an xxunk mark on , consumers , experts and the tech industry . \n",
       " \n",
       " \n",
       "  xxmaj the xxmaj echo xxmaj plus 2 takes the whole iot experience up by a few notches with features such as xxmaj xxunk smart hub which can find iot products on its own , the temperature sensor and local voice control which works offline \n",
       " \n",
       " \n",
       "  xxmaj this is a smart fridge with built in cameras and sensors . xxmaj you can control the temperature , look inside the fridge remotely and even mirror your xxup tv or smartphone on its xxunk screen \n",
       " \n",
       " \n",
       "  xxmaj launched in xxmaj india in xxmaj april 2018 , the xxmaj google xxmaj home speaker has a 360 degree design like xxmaj echo xxmaj xxunk , but comes with the xxmaj google xxmaj assistant . xxmaj its voice match feature can identity voice and one can control compatible iot devices with it . \n",
       " \n",
       " \n",
       "  xxmaj the xxup rog xxmaj xxunk is one of the xxunk and xxunk notebooks driven by xxmaj nvidia ’s top - of - xxunk line xxup gtx 1080 graphics .\n",
       "y: EmptyLabelList\n",
       ",,,,\n",
       "Path: ., model=SequentialRNN(\n",
       "  (0): MultiBatchEncoder(\n",
       "    (module): AWD_LSTM(\n",
       "      (encoder): Embedding(13736, 400, padding_idx=1)\n",
       "      (encoder_dp): EmbeddingDropout(\n",
       "        (emb): Embedding(13736, 400, padding_idx=1)\n",
       "      )\n",
       "      (rnns): ModuleList(\n",
       "        (0): WeightDropout(\n",
       "          (module): LSTM(400, 1152, batch_first=True)\n",
       "        )\n",
       "        (1): WeightDropout(\n",
       "          (module): LSTM(1152, 1152, batch_first=True)\n",
       "        )\n",
       "        (2): WeightDropout(\n",
       "          (module): LSTM(1152, 400, batch_first=True)\n",
       "        )\n",
       "      )\n",
       "      (input_dp): RNNDropout()\n",
       "      (hidden_dps): ModuleList(\n",
       "        (0): RNNDropout()\n",
       "        (1): RNNDropout()\n",
       "        (2): RNNDropout()\n",
       "      )\n",
       "    )\n",
       "  )\n",
       "  (1): PoolingLinearClassifier(\n",
       "    (layers): Sequential(\n",
       "      (0): BatchNorm1d(1200, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "      (1): Dropout(p=0.12)\n",
       "      (2): Linear(in_features=1200, out_features=50, bias=True)\n",
       "      (3): ReLU(inplace)\n",
       "      (4): BatchNorm1d(50, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "      (5): Dropout(p=0.1)\n",
       "      (6): Linear(in_features=50, out_features=4, bias=True)\n",
       "    )\n",
       "  )\n",
       "), opt_func=functools.partial(<class 'torch.optim.adam.Adam'>, betas=(0.9, 0.99)), loss_func=FlattenedLoss of CrossEntropyLoss(), metrics=[<function accuracy at 0x7fa483b6fd90>], true_wd=True, bn_wd=True, wd=0.01, train_bn=True, path=PosixPath('.'), model_dir='models', callback_fns=[functools.partial(<class 'fastai.basic_train.Recorder'>, add_time=True, silent=False)], callbacks=[...], layer_groups=[Sequential(\n",
       "  (0): Embedding(13736, 400, padding_idx=1)\n",
       "  (1): EmbeddingDropout(\n",
       "    (emb): Embedding(13736, 400, padding_idx=1)\n",
       "  )\n",
       "), Sequential(\n",
       "  (0): WeightDropout(\n",
       "    (module): LSTM(400, 1152, batch_first=True)\n",
       "  )\n",
       "  (1): RNNDropout()\n",
       "), Sequential(\n",
       "  (0): WeightDropout(\n",
       "    (module): LSTM(1152, 1152, batch_first=True)\n",
       "  )\n",
       "  (1): RNNDropout()\n",
       "), Sequential(\n",
       "  (0): WeightDropout(\n",
       "    (module): LSTM(1152, 400, batch_first=True)\n",
       "  )\n",
       "  (1): RNNDropout()\n",
       "), Sequential(\n",
       "  (0): PoolingLinearClassifier(\n",
       "    (layers): Sequential(\n",
       "      (0): BatchNorm1d(1200, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "      (1): Dropout(p=0.12)\n",
       "      (2): Linear(in_features=1200, out_features=50, bias=True)\n",
       "      (3): ReLU(inplace)\n",
       "      (4): BatchNorm1d(50, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "      (5): Dropout(p=0.1)\n",
       "      (6): Linear(in_features=50, out_features=4, bias=True)\n",
       "    )\n",
       "  )\n",
       ")], add_time=True, silent=False)\n",
       "alpha: 2.0\n",
       "beta: 1.0], layer_groups=[Sequential(\n",
       "  (0): Embedding(13736, 400, padding_idx=1)\n",
       "  (1): EmbeddingDropout(\n",
       "    (emb): Embedding(13736, 400, padding_idx=1)\n",
       "  )\n",
       "), Sequential(\n",
       "  (0): WeightDropout(\n",
       "    (module): LSTM(400, 1152, batch_first=True)\n",
       "  )\n",
       "  (1): RNNDropout()\n",
       "), Sequential(\n",
       "  (0): WeightDropout(\n",
       "    (module): LSTM(1152, 1152, batch_first=True)\n",
       "  )\n",
       "  (1): RNNDropout()\n",
       "), Sequential(\n",
       "  (0): WeightDropout(\n",
       "    (module): LSTM(1152, 400, batch_first=True)\n",
       "  )\n",
       "  (1): RNNDropout()\n",
       "), Sequential(\n",
       "  (0): PoolingLinearClassifier(\n",
       "    (layers): Sequential(\n",
       "      (0): BatchNorm1d(1200, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "      (1): Dropout(p=0.12)\n",
       "      (2): Linear(in_features=1200, out_features=50, bias=True)\n",
       "      (3): ReLU(inplace)\n",
       "      (4): BatchNorm1d(50, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "      (5): Dropout(p=0.1)\n",
       "      (6): Linear(in_features=50, out_features=4, bias=True)\n",
       "    )\n",
       "  )\n",
       ")], add_time=True, silent=False)"
      ]
     },
     "execution_count": 422,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "learn_classifier.load('second')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 423,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: left;\">\n",
       "      <th>epoch</th>\n",
       "      <th>train_loss</th>\n",
       "      <th>valid_loss</th>\n",
       "      <th>accuracy</th>\n",
       "      <th>time</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>0</td>\n",
       "      <td>0.106801</td>\n",
       "      <td>0.097728</td>\n",
       "      <td>0.971148</td>\n",
       "      <td>00:29</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "learn_classifier.freeze_to(-3)\n",
    "learn_classifier.fit_one_cycle(1, slice(5e-3/(2.6**4),5e-3), moms=(0.8,0.7))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 424,
   "metadata": {},
   "outputs": [],
   "source": [
    "learn_classifier.save('third')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 425,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "RNNLearner(data=TextClasDataBunch;\n",
       "\n",
       "Train: LabelList (6103 items)\n",
       "x: TextList\n",
       "xxbos xxmaj but the most painful was the huge reversal in fee income , xxunk of among private sector lenders . xxmaj essentially , it means that xxmaj yes xxmaj bank took it for granted that fees on structured loan deals will be paid and accounted for upfront on its books . xxmaj as borrowers turned xxunk , the fees tied to these loan deals fell off the xxunk . xxmaj gill has now vowed to shift to a safer accounting practice of xxunk fee income rather than booking these upfront . \n",
       " \n",
       " \n",
       "  xxmaj gill ’s move to xxunk past ways means that there will be no xxunk surprises in the future . xxmaj this is good news considering that investors love a clean image and xxunk uncertainties . \n",
       " \n",
       " \n",
       "  xxmaj but there is no gain without pain and the promise of a strong and stable balance sheet comes with some sacrifices as well . xxmaj investors will have to give up the hopes of phenomenal growth , a promise made by xxmaj kapoor .,xxbos xxmaj how formidable is the opposition alliance among xxmaj congress , xxmaj jharkhand xxmaj mukti xxmaj morcha ( xxup jmm ) and xxmaj jharkhand xxmaj vikas xxmaj morcha ( xxmaj prajatantrik ) ?,xxbos xxmaj if you want to answer any question , click on ‘ xxmaj answer ’ . xxmaj after clicking on xxmaj answer you can also check out replies of other users . xxmaj proceed to xxmaj answer either through writing or voice command . \n",
       " \n",
       " \n",
       "  xxmaj if you want to ask any question , click on “ xxmaj ask a xxmaj question \" . xxmaj few question xxunk are already xxunk to help you with your questions . xxmaj after xxunk your question , the app will send the questions to your neighbours and will let you know how many neighbours \n",
       " \n",
       " \n",
       "  have been asked the question . xxmaj click xxmaj done . xxmaj you can click on the bell icon on the xxunk of the app to follow answers to your questions .,xxbos xxmaj in global markets , gold prices edged up today as disappointing xxmaj chinese factory activity data brought back concerns about the health of the global economy , denting risk appetite . xxmaj spot gold rose 0.4 % to $ xxunk per ounce . xxmaj european equity markets xxunk down today , following weaker xxmaj asian stock markets .,xxbos xxup beijing : xxmaj chinese tech giant xxmaj huawei has announced plans to release a next - generation smartphone based on its own technology instead of xxup us components , stepping up efforts to compete directly with xxmaj western industry leaders . \n",
       " \n",
       " \n",
       "  xxmaj thursday 's announcement comes as xxmaj huawei xxmaj technologies xxmaj ltd. , the world 's biggest maker of network gear for phone companies , xxunk xxup us warnings the company might be a security risk .\n",
       "y: CategoryList\n",
       "3,0,1,3,1\n",
       "Path: .;\n",
       "\n",
       "Valid: LabelList (1525 items)\n",
       "x: TextList\n",
       "xxbos xxmaj sebi says clearing corporations having commodity derivatives segment would need to adhere to the new norms for utilisation of security deposits \n",
       " \n",
       " \n",
       "  xxup new xxup delhi : xxmaj capital markets watchdog xxmaj sebi xxmaj monday came out with a new framework for utilisation of financial security deposits available with clearing corporations , warehouse development and regulatory authority in order to rationalise such deposits . \n",
       " \n",
       " \n",
       "  xxmaj at present , on the same goods , security deposits are required to be maintained with both xxup wdra ( warehouse development and regulatory authority ) and clearing corporations , putting additional financial burden on warehouse operators . \n",
       " \n",
       " \n",
       "  xxmaj in order to rationalise financial security deposit ( xxup fsd ) and , after consultation with xxup wdra and clearing corporations , xxmaj sebi in a circular said clearing corporations having commodity derivatives segment would need to adhere to the new norms laid by the regulator for utilisation of such deposits .,xxbos xxmaj aamir xxmaj khan was last seen in xxmaj thugs of xxmaj hindostan which received poor reviews from fans and critics alike,xxbos xxmaj developers who want to attend the conference have to apply on xxmaj apple ’s website by xxmaj march 20 . xxmaj tickets cost $ 1,599 each,xxbos xxmaj actor xxmaj queen xxmaj latifah has revealed that all the original cast members of xxmaj girls xxmaj trip are ready for a sequel,xxbos xxmaj you can also ask questions in the language of your choice . xxmaj go to phone settings and select the provided options . xxmaj you also have options to follow other users ’ questions . \n",
       " \n",
       " \n",
       "  xxmaj this is how xxmaj neighbourly works : xxmaj imagine , you have just shifted to a new locality in xxmaj xxunk xxmaj vihar , xxmaj delhi . xxmaj you will need a xxunk to fix the water connection , an address of the nearest xxup lpg connection office , details about the nearest vegetable market and information \n",
       " \n",
       " \n",
       "  about the nearest park for your kids . xxmaj all you need to do is , go to xxmaj neighbourly , ask your questions and get the required information through your new neighbours .\n",
       "y: CategoryList\n",
       "3,2,1,2,1\n",
       "Path: .;\n",
       "\n",
       "Test: LabelList (2748 items)\n",
       "x: TextList\n",
       "xxbos 2019 will see gadgets like gaming smartphones and wearable medical devices lifting the user experience to a whole new level \n",
       " \n",
       " \n",
       "  mint - india - wire consumer xxunk technology trends in xxmaj new xxmaj xxunk xxunk xxunk xxunk medical xxunk \n",
       " \n",
       " \n",
       "  xxmaj new xxmaj delhi : xxmaj gadgets have become an integral part of our lives with most of us relying on some form of factor to communicate , commute , work , be informed or entertained . xxmaj year 2019 will see some gadgets lifting the user experience to a whole new level . xxmaj here ’s what we can expect to see : \n",
       " \n",
       " \n",
       "  xxmaj smartphones with foldable screens : xxmaj foldable phones are finally moving from the concept stage to commercial launches . xxmaj they are made up of organic light - emitting diode ( xxup oled ) panels with higher plastic xxunk , allowing them to be bent without damage . \n",
       " \n",
       " \n",
       "  xxup us - based display maker xxmaj royole xxmaj corp ’s foldable phone , flexpai , has already arrived in select markets , while xxmaj samsung ’s unnamed foldable phone is expected sometime next year . xxmaj samsung ’s smartphone chief executive officer xxup xxunk xxmaj koh has said they will make a million units of it . xxup lg , too , is expected to display a foldable phone next year . xxmaj meanwhile xxmaj apple , xxmaj nokia , xxmaj lenovo and xxmaj huawei have also been working on foldable phones , reportedly . \n",
       " \n",
       " \n",
       "  esim : xxmaj very soon your smartphone wo n’t need a physical xxup sim card anymore . xxmaj the esim technology , already used by xxmaj apple in its iphones and xxmaj apple xxmaj watch , xxunk the physical xxup sim with a virtually embedded chip on the motherboard . esims support multiple mobile operators and can be programmed to switch services .,xxbos xxmaj it has also xxunk a wave of changes in the xxup mcu that will make sure its future is a lot different than its past \n",
       " \n",
       " \n",
       "  xxmaj kevin xxmaj feige had signalled diversity and more representation in the post - phase 3 xxup mcu and xxmaj endgame does a lot to showcase the initiative,xxbos xxmaj it can be confusing to pick the right smartphone for yourself , so we have xxunk the top smartphones under xxmaj rs 20,000 according to their strengths . \n",
       " \n",
       " \n",
       "  xxmaj the best smartphones under ₹20,000 xxunk according to performance , camera , design and battery life \n",
       " \n",
       " \n",
       "  mint - india - wire phones under xxmaj rs 2 xxrep 4 0 xxmaj poco xxunk xxunk xxmaj note 6 xxmaj xxunk 2 xxunk xxunk xxunk xxunk xxmaj zenfone xxmaj max xxmaj pro xxup m1 \n",
       " \n",
       " \n",
       "  xxmaj gone are the days when you had to shell out big buck for buying smartphones with premium features . xxmaj technology has become more accessible recently and the biggest example of that lies in the sub - xxmaj rs 20,000 category — you get good performance , design and even software at a reasonable price . \n",
       " \n",
       " \n",
       "  xxmaj it can be confusing to pick the right smartphone for you , however , given the amount of variety that lies in the segment . xxmaj so we have xxunk the top smartphones under ₹ 20,000 according to their strengths , so you can pick the one that suits you best . \n",
       " \n",
       " \n",
       "  xxmaj this phone actually lies just north of the ₹ 20,000 price point . xxmaj but if you have an xxup hdfc debit or credit card , you can purchase the lowest spec variant with 6 xxup gb xxup ram and 64 xxup gb internal storage for as low as ₹ xxunk , making it the cheapest smartphone to run a xxmaj qualcomm xxmaj snapdragon 845 soc. xxmaj there ’s not a lot to not like about this phone — it has the fastest processor xxmaj qualcomm has to offer , some thermal xxunk to keep your smartphone cool during intense gaming sessions , a very good camera and some durable plastic that does n’t xxunk or pick up scratches . \n",
       " \n",
       " \n",
       "  xxmaj it even gets a xxunk version of the xxup miui with an app drawer that allows you colour code your applications .,xxbos xxmaj the mobile application is integrated with a dashboard to confirm and register the pre - registered cases , to enable online interface between the xxunk and the panel lawyer through video xxunk and xxunk facility . \n",
       " \n",
       " \n",
       "  xxmaj prasad said that a pilot project in this regard had proved useful and more than 50,000 people have already availed this service . xxmaj till xxmaj january , it resulted in enabling legal advice to xxunk beneficiaries that include xxunk ( xxmaj women ) , xxunk ( xxup sc ) and xxunk ( xxup st ) in 11 states including xxmaj uttar xxmaj pradesh , xxmaj bihar and all xxmaj north - xxmaj eastern states and the xxmaj state of xxmaj jammu and xxmaj kashmir , he said . \n",
       " \n",
       " \n",
       "  xxmaj the law minister was of the view that pro xxunk appearances by lawyers should be considered as a criteria for appointment as judges . xxmaj he was also of the view that there was a need for legal literacy in xxmaj india .,xxbos xxmaj we have xxunk up some of the gadgets that showed up in 2018 and left an xxunk mark on , consumers , experts and the tech industry \n",
       " \n",
       " \n",
       "  xxmaj youngsters playing xxup pubg xxmaj mobile on their smartphone for hours , elderly switching off the lights using voice or a family watching their favourite movie in 4 k xxup hdr on xxmaj netflix are some of the habits which were shaped by the gadgets around them . xxmaj we have xxunk up some of the gadgets that showed up in 2018 and left an xxunk mark on , consumers , experts and the tech industry . \n",
       " \n",
       " \n",
       "  xxmaj the xxmaj echo xxmaj plus 2 takes the whole iot experience up by a few notches with features such as xxmaj xxunk smart hub which can find iot products on its own , the temperature sensor and local voice control which works offline \n",
       " \n",
       " \n",
       "  xxmaj this is a smart fridge with built in cameras and sensors . xxmaj you can control the temperature , look inside the fridge remotely and even mirror your xxup tv or smartphone on its xxunk screen \n",
       " \n",
       " \n",
       "  xxmaj launched in xxmaj india in xxmaj april 2018 , the xxmaj google xxmaj home speaker has a 360 degree design like xxmaj echo xxmaj xxunk , but comes with the xxmaj google xxmaj assistant . xxmaj its voice match feature can identity voice and one can control compatible iot devices with it . \n",
       " \n",
       " \n",
       "  xxmaj the xxup rog xxmaj xxunk is one of the xxunk and xxunk notebooks driven by xxmaj nvidia ’s top - of - xxunk line xxup gtx 1080 graphics .\n",
       "y: EmptyLabelList\n",
       ",,,,\n",
       "Path: ., model=SequentialRNN(\n",
       "  (0): MultiBatchEncoder(\n",
       "    (module): AWD_LSTM(\n",
       "      (encoder): Embedding(13736, 400, padding_idx=1)\n",
       "      (encoder_dp): EmbeddingDropout(\n",
       "        (emb): Embedding(13736, 400, padding_idx=1)\n",
       "      )\n",
       "      (rnns): ModuleList(\n",
       "        (0): WeightDropout(\n",
       "          (module): LSTM(400, 1152, batch_first=True)\n",
       "        )\n",
       "        (1): WeightDropout(\n",
       "          (module): LSTM(1152, 1152, batch_first=True)\n",
       "        )\n",
       "        (2): WeightDropout(\n",
       "          (module): LSTM(1152, 400, batch_first=True)\n",
       "        )\n",
       "      )\n",
       "      (input_dp): RNNDropout()\n",
       "      (hidden_dps): ModuleList(\n",
       "        (0): RNNDropout()\n",
       "        (1): RNNDropout()\n",
       "        (2): RNNDropout()\n",
       "      )\n",
       "    )\n",
       "  )\n",
       "  (1): PoolingLinearClassifier(\n",
       "    (layers): Sequential(\n",
       "      (0): BatchNorm1d(1200, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "      (1): Dropout(p=0.12)\n",
       "      (2): Linear(in_features=1200, out_features=50, bias=True)\n",
       "      (3): ReLU(inplace)\n",
       "      (4): BatchNorm1d(50, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "      (5): Dropout(p=0.1)\n",
       "      (6): Linear(in_features=50, out_features=4, bias=True)\n",
       "    )\n",
       "  )\n",
       "), opt_func=functools.partial(<class 'torch.optim.adam.Adam'>, betas=(0.9, 0.99)), loss_func=FlattenedLoss of CrossEntropyLoss(), metrics=[<function accuracy at 0x7fa483b6fd90>], true_wd=True, bn_wd=True, wd=0.01, train_bn=True, path=PosixPath('.'), model_dir='models', callback_fns=[functools.partial(<class 'fastai.basic_train.Recorder'>, add_time=True, silent=False)], callbacks=[RNNTrainer\n",
       "learn: RNNLearner(data=TextClasDataBunch;\n",
       "\n",
       "Train: LabelList (6103 items)\n",
       "x: TextList\n",
       "xxbos xxmaj but the most painful was the huge reversal in fee income , xxunk of among private sector lenders . xxmaj essentially , it means that xxmaj yes xxmaj bank took it for granted that fees on structured loan deals will be paid and accounted for upfront on its books . xxmaj as borrowers turned xxunk , the fees tied to these loan deals fell off the xxunk . xxmaj gill has now vowed to shift to a safer accounting practice of xxunk fee income rather than booking these upfront . \n",
       " \n",
       " \n",
       "  xxmaj gill ’s move to xxunk past ways means that there will be no xxunk surprises in the future . xxmaj this is good news considering that investors love a clean image and xxunk uncertainties . \n",
       " \n",
       " \n",
       "  xxmaj but there is no gain without pain and the promise of a strong and stable balance sheet comes with some sacrifices as well . xxmaj investors will have to give up the hopes of phenomenal growth , a promise made by xxmaj kapoor .,xxbos xxmaj how formidable is the opposition alliance among xxmaj congress , xxmaj jharkhand xxmaj mukti xxmaj morcha ( xxup jmm ) and xxmaj jharkhand xxmaj vikas xxmaj morcha ( xxmaj prajatantrik ) ?,xxbos xxmaj if you want to answer any question , click on ‘ xxmaj answer ’ . xxmaj after clicking on xxmaj answer you can also check out replies of other users . xxmaj proceed to xxmaj answer either through writing or voice command . \n",
       " \n",
       " \n",
       "  xxmaj if you want to ask any question , click on “ xxmaj ask a xxmaj question \" . xxmaj few question xxunk are already xxunk to help you with your questions . xxmaj after xxunk your question , the app will send the questions to your neighbours and will let you know how many neighbours \n",
       " \n",
       " \n",
       "  have been asked the question . xxmaj click xxmaj done . xxmaj you can click on the bell icon on the xxunk of the app to follow answers to your questions .,xxbos xxmaj in global markets , gold prices edged up today as disappointing xxmaj chinese factory activity data brought back concerns about the health of the global economy , denting risk appetite . xxmaj spot gold rose 0.4 % to $ xxunk per ounce . xxmaj european equity markets xxunk down today , following weaker xxmaj asian stock markets .,xxbos xxup beijing : xxmaj chinese tech giant xxmaj huawei has announced plans to release a next - generation smartphone based on its own technology instead of xxup us components , stepping up efforts to compete directly with xxmaj western industry leaders . \n",
       " \n",
       " \n",
       "  xxmaj thursday 's announcement comes as xxmaj huawei xxmaj technologies xxmaj ltd. , the world 's biggest maker of network gear for phone companies , xxunk xxup us warnings the company might be a security risk .\n",
       "y: CategoryList\n",
       "3,0,1,3,1\n",
       "Path: .;\n",
       "\n",
       "Valid: LabelList (1525 items)\n",
       "x: TextList\n",
       "xxbos xxmaj sebi says clearing corporations having commodity derivatives segment would need to adhere to the new norms for utilisation of security deposits \n",
       " \n",
       " \n",
       "  xxup new xxup delhi : xxmaj capital markets watchdog xxmaj sebi xxmaj monday came out with a new framework for utilisation of financial security deposits available with clearing corporations , warehouse development and regulatory authority in order to rationalise such deposits . \n",
       " \n",
       " \n",
       "  xxmaj at present , on the same goods , security deposits are required to be maintained with both xxup wdra ( warehouse development and regulatory authority ) and clearing corporations , putting additional financial burden on warehouse operators . \n",
       " \n",
       " \n",
       "  xxmaj in order to rationalise financial security deposit ( xxup fsd ) and , after consultation with xxup wdra and clearing corporations , xxmaj sebi in a circular said clearing corporations having commodity derivatives segment would need to adhere to the new norms laid by the regulator for utilisation of such deposits .,xxbos xxmaj aamir xxmaj khan was last seen in xxmaj thugs of xxmaj hindostan which received poor reviews from fans and critics alike,xxbos xxmaj developers who want to attend the conference have to apply on xxmaj apple ’s website by xxmaj march 20 . xxmaj tickets cost $ 1,599 each,xxbos xxmaj actor xxmaj queen xxmaj latifah has revealed that all the original cast members of xxmaj girls xxmaj trip are ready for a sequel,xxbos xxmaj you can also ask questions in the language of your choice . xxmaj go to phone settings and select the provided options . xxmaj you also have options to follow other users ’ questions . \n",
       " \n",
       " \n",
       "  xxmaj this is how xxmaj neighbourly works : xxmaj imagine , you have just shifted to a new locality in xxmaj xxunk xxmaj vihar , xxmaj delhi . xxmaj you will need a xxunk to fix the water connection , an address of the nearest xxup lpg connection office , details about the nearest vegetable market and information \n",
       " \n",
       " \n",
       "  about the nearest park for your kids . xxmaj all you need to do is , go to xxmaj neighbourly , ask your questions and get the required information through your new neighbours .\n",
       "y: CategoryList\n",
       "3,2,1,2,1\n",
       "Path: .;\n",
       "\n",
       "Test: LabelList (2748 items)\n",
       "x: TextList\n",
       "xxbos 2019 will see gadgets like gaming smartphones and wearable medical devices lifting the user experience to a whole new level \n",
       " \n",
       " \n",
       "  mint - india - wire consumer xxunk technology trends in xxmaj new xxmaj xxunk xxunk xxunk xxunk medical xxunk \n",
       " \n",
       " \n",
       "  xxmaj new xxmaj delhi : xxmaj gadgets have become an integral part of our lives with most of us relying on some form of factor to communicate , commute , work , be informed or entertained . xxmaj year 2019 will see some gadgets lifting the user experience to a whole new level . xxmaj here ’s what we can expect to see : \n",
       " \n",
       " \n",
       "  xxmaj smartphones with foldable screens : xxmaj foldable phones are finally moving from the concept stage to commercial launches . xxmaj they are made up of organic light - emitting diode ( xxup oled ) panels with higher plastic xxunk , allowing them to be bent without damage . \n",
       " \n",
       " \n",
       "  xxup us - based display maker xxmaj royole xxmaj corp ’s foldable phone , flexpai , has already arrived in select markets , while xxmaj samsung ’s unnamed foldable phone is expected sometime next year . xxmaj samsung ’s smartphone chief executive officer xxup xxunk xxmaj koh has said they will make a million units of it . xxup lg , too , is expected to display a foldable phone next year . xxmaj meanwhile xxmaj apple , xxmaj nokia , xxmaj lenovo and xxmaj huawei have also been working on foldable phones , reportedly . \n",
       " \n",
       " \n",
       "  esim : xxmaj very soon your smartphone wo n’t need a physical xxup sim card anymore . xxmaj the esim technology , already used by xxmaj apple in its iphones and xxmaj apple xxmaj watch , xxunk the physical xxup sim with a virtually embedded chip on the motherboard . esims support multiple mobile operators and can be programmed to switch services .,xxbos xxmaj it has also xxunk a wave of changes in the xxup mcu that will make sure its future is a lot different than its past \n",
       " \n",
       " \n",
       "  xxmaj kevin xxmaj feige had signalled diversity and more representation in the post - phase 3 xxup mcu and xxmaj endgame does a lot to showcase the initiative,xxbos xxmaj it can be confusing to pick the right smartphone for yourself , so we have xxunk the top smartphones under xxmaj rs 20,000 according to their strengths . \n",
       " \n",
       " \n",
       "  xxmaj the best smartphones under ₹20,000 xxunk according to performance , camera , design and battery life \n",
       " \n",
       " \n",
       "  mint - india - wire phones under xxmaj rs 2 xxrep 4 0 xxmaj poco xxunk xxunk xxmaj note 6 xxmaj xxunk 2 xxunk xxunk xxunk xxunk xxmaj zenfone xxmaj max xxmaj pro xxup m1 \n",
       " \n",
       " \n",
       "  xxmaj gone are the days when you had to shell out big buck for buying smartphones with premium features . xxmaj technology has become more accessible recently and the biggest example of that lies in the sub - xxmaj rs 20,000 category — you get good performance , design and even software at a reasonable price . \n",
       " \n",
       " \n",
       "  xxmaj it can be confusing to pick the right smartphone for you , however , given the amount of variety that lies in the segment . xxmaj so we have xxunk the top smartphones under ₹ 20,000 according to their strengths , so you can pick the one that suits you best . \n",
       " \n",
       " \n",
       "  xxmaj this phone actually lies just north of the ₹ 20,000 price point . xxmaj but if you have an xxup hdfc debit or credit card , you can purchase the lowest spec variant with 6 xxup gb xxup ram and 64 xxup gb internal storage for as low as ₹ xxunk , making it the cheapest smartphone to run a xxmaj qualcomm xxmaj snapdragon 845 soc. xxmaj there ’s not a lot to not like about this phone — it has the fastest processor xxmaj qualcomm has to offer , some thermal xxunk to keep your smartphone cool during intense gaming sessions , a very good camera and some durable plastic that does n’t xxunk or pick up scratches . \n",
       " \n",
       " \n",
       "  xxmaj it even gets a xxunk version of the xxup miui with an app drawer that allows you colour code your applications .,xxbos xxmaj the mobile application is integrated with a dashboard to confirm and register the pre - registered cases , to enable online interface between the xxunk and the panel lawyer through video xxunk and xxunk facility . \n",
       " \n",
       " \n",
       "  xxmaj prasad said that a pilot project in this regard had proved useful and more than 50,000 people have already availed this service . xxmaj till xxmaj january , it resulted in enabling legal advice to xxunk beneficiaries that include xxunk ( xxmaj women ) , xxunk ( xxup sc ) and xxunk ( xxup st ) in 11 states including xxmaj uttar xxmaj pradesh , xxmaj bihar and all xxmaj north - xxmaj eastern states and the xxmaj state of xxmaj jammu and xxmaj kashmir , he said . \n",
       " \n",
       " \n",
       "  xxmaj the law minister was of the view that pro xxunk appearances by lawyers should be considered as a criteria for appointment as judges . xxmaj he was also of the view that there was a need for legal literacy in xxmaj india .,xxbos xxmaj we have xxunk up some of the gadgets that showed up in 2018 and left an xxunk mark on , consumers , experts and the tech industry \n",
       " \n",
       " \n",
       "  xxmaj youngsters playing xxup pubg xxmaj mobile on their smartphone for hours , elderly switching off the lights using voice or a family watching their favourite movie in 4 k xxup hdr on xxmaj netflix are some of the habits which were shaped by the gadgets around them . xxmaj we have xxunk up some of the gadgets that showed up in 2018 and left an xxunk mark on , consumers , experts and the tech industry . \n",
       " \n",
       " \n",
       "  xxmaj the xxmaj echo xxmaj plus 2 takes the whole iot experience up by a few notches with features such as xxmaj xxunk smart hub which can find iot products on its own , the temperature sensor and local voice control which works offline \n",
       " \n",
       " \n",
       "  xxmaj this is a smart fridge with built in cameras and sensors . xxmaj you can control the temperature , look inside the fridge remotely and even mirror your xxup tv or smartphone on its xxunk screen \n",
       " \n",
       " \n",
       "  xxmaj launched in xxmaj india in xxmaj april 2018 , the xxmaj google xxmaj home speaker has a 360 degree design like xxmaj echo xxmaj xxunk , but comes with the xxmaj google xxmaj assistant . xxmaj its voice match feature can identity voice and one can control compatible iot devices with it . \n",
       " \n",
       " \n",
       "  xxmaj the xxup rog xxmaj xxunk is one of the xxunk and xxunk notebooks driven by xxmaj nvidia ’s top - of - xxunk line xxup gtx 1080 graphics .\n",
       "y: EmptyLabelList\n",
       ",,,,\n",
       "Path: ., model=SequentialRNN(\n",
       "  (0): MultiBatchEncoder(\n",
       "    (module): AWD_LSTM(\n",
       "      (encoder): Embedding(13736, 400, padding_idx=1)\n",
       "      (encoder_dp): EmbeddingDropout(\n",
       "        (emb): Embedding(13736, 400, padding_idx=1)\n",
       "      )\n",
       "      (rnns): ModuleList(\n",
       "        (0): WeightDropout(\n",
       "          (module): LSTM(400, 1152, batch_first=True)\n",
       "        )\n",
       "        (1): WeightDropout(\n",
       "          (module): LSTM(1152, 1152, batch_first=True)\n",
       "        )\n",
       "        (2): WeightDropout(\n",
       "          (module): LSTM(1152, 400, batch_first=True)\n",
       "        )\n",
       "      )\n",
       "      (input_dp): RNNDropout()\n",
       "      (hidden_dps): ModuleList(\n",
       "        (0): RNNDropout()\n",
       "        (1): RNNDropout()\n",
       "        (2): RNNDropout()\n",
       "      )\n",
       "    )\n",
       "  )\n",
       "  (1): PoolingLinearClassifier(\n",
       "    (layers): Sequential(\n",
       "      (0): BatchNorm1d(1200, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "      (1): Dropout(p=0.12)\n",
       "      (2): Linear(in_features=1200, out_features=50, bias=True)\n",
       "      (3): ReLU(inplace)\n",
       "      (4): BatchNorm1d(50, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "      (5): Dropout(p=0.1)\n",
       "      (6): Linear(in_features=50, out_features=4, bias=True)\n",
       "    )\n",
       "  )\n",
       "), opt_func=functools.partial(<class 'torch.optim.adam.Adam'>, betas=(0.9, 0.99)), loss_func=FlattenedLoss of CrossEntropyLoss(), metrics=[<function accuracy at 0x7fa483b6fd90>], true_wd=True, bn_wd=True, wd=0.01, train_bn=True, path=PosixPath('.'), model_dir='models', callback_fns=[functools.partial(<class 'fastai.basic_train.Recorder'>, add_time=True, silent=False)], callbacks=[...], layer_groups=[Sequential(\n",
       "  (0): Embedding(13736, 400, padding_idx=1)\n",
       "  (1): EmbeddingDropout(\n",
       "    (emb): Embedding(13736, 400, padding_idx=1)\n",
       "  )\n",
       "), Sequential(\n",
       "  (0): WeightDropout(\n",
       "    (module): LSTM(400, 1152, batch_first=True)\n",
       "  )\n",
       "  (1): RNNDropout()\n",
       "), Sequential(\n",
       "  (0): WeightDropout(\n",
       "    (module): LSTM(1152, 1152, batch_first=True)\n",
       "  )\n",
       "  (1): RNNDropout()\n",
       "), Sequential(\n",
       "  (0): WeightDropout(\n",
       "    (module): LSTM(1152, 400, batch_first=True)\n",
       "  )\n",
       "  (1): RNNDropout()\n",
       "), Sequential(\n",
       "  (0): PoolingLinearClassifier(\n",
       "    (layers): Sequential(\n",
       "      (0): BatchNorm1d(1200, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "      (1): Dropout(p=0.12)\n",
       "      (2): Linear(in_features=1200, out_features=50, bias=True)\n",
       "      (3): ReLU(inplace)\n",
       "      (4): BatchNorm1d(50, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "      (5): Dropout(p=0.1)\n",
       "      (6): Linear(in_features=50, out_features=4, bias=True)\n",
       "    )\n",
       "  )\n",
       ")], add_time=True, silent=False)\n",
       "alpha: 2.0\n",
       "beta: 1.0], layer_groups=[Sequential(\n",
       "  (0): Embedding(13736, 400, padding_idx=1)\n",
       "  (1): EmbeddingDropout(\n",
       "    (emb): Embedding(13736, 400, padding_idx=1)\n",
       "  )\n",
       "), Sequential(\n",
       "  (0): WeightDropout(\n",
       "    (module): LSTM(400, 1152, batch_first=True)\n",
       "  )\n",
       "  (1): RNNDropout()\n",
       "), Sequential(\n",
       "  (0): WeightDropout(\n",
       "    (module): LSTM(1152, 1152, batch_first=True)\n",
       "  )\n",
       "  (1): RNNDropout()\n",
       "), Sequential(\n",
       "  (0): WeightDropout(\n",
       "    (module): LSTM(1152, 400, batch_first=True)\n",
       "  )\n",
       "  (1): RNNDropout()\n",
       "), Sequential(\n",
       "  (0): PoolingLinearClassifier(\n",
       "    (layers): Sequential(\n",
       "      (0): BatchNorm1d(1200, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "      (1): Dropout(p=0.12)\n",
       "      (2): Linear(in_features=1200, out_features=50, bias=True)\n",
       "      (3): ReLU(inplace)\n",
       "      (4): BatchNorm1d(50, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "      (5): Dropout(p=0.1)\n",
       "      (6): Linear(in_features=50, out_features=4, bias=True)\n",
       "    )\n",
       "  )\n",
       ")], add_time=True, silent=False)"
      ]
     },
     "execution_count": 425,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "learn_classifier.load('third')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 427,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: left;\">\n",
       "      <th>epoch</th>\n",
       "      <th>train_loss</th>\n",
       "      <th>valid_loss</th>\n",
       "      <th>accuracy</th>\n",
       "      <th>time</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>0</td>\n",
       "      <td>0.059287</td>\n",
       "      <td>0.099482</td>\n",
       "      <td>0.971803</td>\n",
       "      <td>00:34</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>1</td>\n",
       "      <td>0.049884</td>\n",
       "      <td>0.077105</td>\n",
       "      <td>0.979016</td>\n",
       "      <td>00:38</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2</td>\n",
       "      <td>0.036502</td>\n",
       "      <td>0.078937</td>\n",
       "      <td>0.979672</td>\n",
       "      <td>00:37</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "learn_classifier.unfreeze()\n",
    "learn_classifier.fit_one_cycle(3, slice(1e-3/(2.6**4),1e-3), moms=(0.8,0.7))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 428,
   "metadata": {},
   "outputs": [],
   "source": [
    "preds, target = learn_classifier.get_preds(DatasetType.Test, ordered=True)\n",
    "labels = np.argmax(preds, axis =1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 435,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th>text</th>\n",
       "      <th>target</th>\n",
       "      <th>prediction</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>xxbos xxmaj like most cities its size , xxmaj nagpur is erasing its unique features in search of an elusive xxunk that would in a new xxunk make it a “ smart and global city \" , never mind we have no idea of what that will mean to us and our future . xxmaj the city is getting expensive xxunk and coffee joints , and xxunk restaurants , but</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>xxbos xxmaj devotees xxunk the streets of xxmaj nagpur to celebrate the annual xxmaj xxunk festival . xxmaj the devotees take out a procession carrying xxunk or ‘ xxmaj xxunk ’ of xxmaj xxunk ( black ) and xxmaj xxunk ( xxmaj yellow ) that represent evil , and later burn xxunk . xxunk / mint \\n \\n \\n  2019 has too much at stake for xxmaj nagpur ,</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>xxbos xxmaj incidentally , xxmaj dinesh xxmaj trivedi ’s constituency — the xxmaj barrackpore - xxmaj xxunk - xxmaj xxunk belt — was once the jute bowl of xxmaj india , with numerous jute mills lining the banks of xxmaj xxunk river . xxmaj in addition , this belt also housed many engineering factories . xxmaj many of these have shut down , leading to loss of jobs and livelihoods</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>xxbos xxmaj so far , so conventional . xxmaj that opinion in xxmaj lucknow could vary widely under well - woven views , began to come across only in relatively relaxed settings . \\n \\n \\n  xxmaj it was xxunk , the city ’s typical response to who would win this year ’s elections : “ xxup bjp \" . xxmaj xxunk xxmaj kumar , 21 , was sure</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>xxbos xxmaj let ’s take the example of the basic income pilot study carried out in xxmaj madhya xxmaj pradesh between 2009 - 13 . xxmaj as xxmaj standing points out : “ xxmaj villagers ’ increased purchasing power led to local farmers to plant more rice and wheat , use more fertilizer and xxunk more of their land . xxmaj their earnings went up , while the unit price</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "learn_classifier.show_results()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 438,
   "metadata": {},
   "outputs": [],
   "source": [
    "np.save(\"fastai_prob.npy\", preds)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.8"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": true
  },
  "widgets": {
   "application/vnd.jupyter.widget-state+json": {
    "state": {
     "0791f73ae8c141f3be472a743f61cba4": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "1.2.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "overflow_x": null,
       "overflow_y": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "0adda4f0813f4dd88e4e47e1de52c356": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HTMLModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "HTMLModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "1.5.0",
       "_view_name": "HTMLView",
       "description": "",
       "description_tooltip": null,
       "layout": "IPY_MODEL_5ffe874469a4455a9b749509c761e3f8",
       "placeholder": "​",
       "style": "IPY_MODEL_d93d1df429db492a82b62123070e9027",
       "value": "100% 7628/7628 [00:02&lt;00:00, 2909.56it/s]"
      }
     },
     "0e2b19c4d34b45039b5a559fd6af1601": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "1.2.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "overflow_x": null,
       "overflow_y": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "15ef2547fe684e0c8bbae66760558565": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HBoxModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "HBoxModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "1.5.0",
       "_view_name": "HBoxView",
       "box_style": "",
       "children": [
        "IPY_MODEL_d591d4a15b8c4eb5adf41a464f97ee70",
        "IPY_MODEL_e68d4a30873244b089e058a38f4dba3e"
       ],
       "layout": "IPY_MODEL_b3a6dc8c4a984e74a9b77f8dc73fd22a"
      }
     },
     "17b9f3c9ab5047cab6e31d2c3a0f6758": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "DescriptionStyleModel",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "DescriptionStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "StyleView",
       "description_width": ""
      }
     },
     "1d8e7ebb4450499fb08c3ee369137e9d": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "1.2.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "overflow_x": null,
       "overflow_y": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "260b256690d44d7c97934d4370bbcd88": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "ProgressStyleModel",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "ProgressStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "StyleView",
       "bar_color": null,
       "description_width": "initial"
      }
     },
     "28f788db23c640bd80431153f7ff3502": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HBoxModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "HBoxModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "1.5.0",
       "_view_name": "HBoxView",
       "box_style": "",
       "children": [
        "IPY_MODEL_877611d58a9047e4a411a469edb708b0",
        "IPY_MODEL_71ebdd0c150c4da8bfbe54486a5783e1"
       ],
       "layout": "IPY_MODEL_0791f73ae8c141f3be472a743f61cba4"
      }
     },
     "2a822356de5a4faab10e4dff00775407": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "IntProgressModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "IntProgressModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "1.5.0",
       "_view_name": "ProgressView",
       "bar_style": "success",
       "description": "Progress",
       "description_tooltip": null,
       "layout": "IPY_MODEL_373ebc18bc2d4c6a8c295b96a790af94",
       "max": 7628,
       "min": 0,
       "orientation": "horizontal",
       "style": "IPY_MODEL_aa6367061c8f4decb871c528a5712cba",
       "value": 7628
      }
     },
     "373ebc18bc2d4c6a8c295b96a790af94": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "1.2.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "overflow_x": null,
       "overflow_y": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "5ffe874469a4455a9b749509c761e3f8": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "1.2.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "overflow_x": null,
       "overflow_y": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "635dbfd825ac4a00982a224ba3147ed6": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "1.2.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "overflow_x": null,
       "overflow_y": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "71ebdd0c150c4da8bfbe54486a5783e1": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HTMLModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "HTMLModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "1.5.0",
       "_view_name": "HTMLView",
       "description": "",
       "description_tooltip": null,
       "layout": "IPY_MODEL_0e2b19c4d34b45039b5a559fd6af1601",
       "placeholder": "​",
       "style": "IPY_MODEL_e89139760e2c42adbd809b01043f6a8e",
       "value": "100% 7628/7628 [00:00&lt;00:00, 13933.76it/s]"
      }
     },
     "877611d58a9047e4a411a469edb708b0": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "IntProgressModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "IntProgressModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "1.5.0",
       "_view_name": "ProgressView",
       "bar_style": "success",
       "description": "Progress",
       "description_tooltip": null,
       "layout": "IPY_MODEL_1d8e7ebb4450499fb08c3ee369137e9d",
       "max": 7628,
       "min": 0,
       "orientation": "horizontal",
       "style": "IPY_MODEL_b2f32ab2abaa494e837191d368ea9d44",
       "value": 7628
      }
     },
     "8c1f066e2fb74c22baf22e2e4c20a465": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "1.2.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "overflow_x": null,
       "overflow_y": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "aa6367061c8f4decb871c528a5712cba": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "ProgressStyleModel",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "ProgressStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "StyleView",
       "bar_color": null,
       "description_width": "initial"
      }
     },
     "b2f32ab2abaa494e837191d368ea9d44": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "ProgressStyleModel",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "ProgressStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "StyleView",
       "bar_color": null,
       "description_width": "initial"
      }
     },
     "b3a6dc8c4a984e74a9b77f8dc73fd22a": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "1.2.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "overflow_x": null,
       "overflow_y": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "b5f19ff49b6b4b999a1803d59fe16056": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HBoxModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "HBoxModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "1.5.0",
       "_view_name": "HBoxView",
       "box_style": "",
       "children": [
        "IPY_MODEL_2a822356de5a4faab10e4dff00775407",
        "IPY_MODEL_0adda4f0813f4dd88e4e47e1de52c356"
       ],
       "layout": "IPY_MODEL_8c1f066e2fb74c22baf22e2e4c20a465"
      }
     },
     "d591d4a15b8c4eb5adf41a464f97ee70": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "IntProgressModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "IntProgressModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "1.5.0",
       "_view_name": "ProgressView",
       "bar_style": "success",
       "description": "Progress",
       "description_tooltip": null,
       "layout": "IPY_MODEL_635dbfd825ac4a00982a224ba3147ed6",
       "max": 7628,
       "min": 0,
       "orientation": "horizontal",
       "style": "IPY_MODEL_260b256690d44d7c97934d4370bbcd88",
       "value": 7628
      }
     },
     "d93d1df429db492a82b62123070e9027": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "DescriptionStyleModel",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "DescriptionStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "StyleView",
       "description_width": ""
      }
     },
     "e567fd6388f24d9d8c031f7550ba7400": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "1.2.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "overflow_x": null,
       "overflow_y": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "e68d4a30873244b089e058a38f4dba3e": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HTMLModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "HTMLModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "1.5.0",
       "_view_name": "HTMLView",
       "description": "",
       "description_tooltip": null,
       "layout": "IPY_MODEL_e567fd6388f24d9d8c031f7550ba7400",
       "placeholder": "​",
       "style": "IPY_MODEL_17b9f3c9ab5047cab6e31d2c3a0f6758",
       "value": "100% 7628/7628 [00:00&lt;00:00, 11619.15it/s]"
      }
     },
     "e89139760e2c42adbd809b01043f6a8e": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "DescriptionStyleModel",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "DescriptionStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "StyleView",
       "description_width": ""
      }
     }
    },
    "version_major": 2,
    "version_minor": 0
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
